Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

[JavaScript] JSON-Objektnotation - Zugriff auf Object-"Index"?





Frage

Morgen zusammen. Ich habe hier einen json-String der wie folgt aussieht: [code]jsonSTRING = { '12345' : { 'name1' : 'wert1', 'name2' : 'wert2' }, { '54321' : { 'name1' : 'wert1', 'name2' : 'wert2' }}[/code] Da '12345' sowie '54321' hier nur Platzhalter sind, und später durch (zufällig) generierte IDs ersetzt werden sollen, stellt sich mir die Frage, wie ich denn an die Indexes des Hauptobjektes, welches in jsonSTRING liegt, herankomme. Sprich -> Ich würde in diesem Falle gerne '12345' und '54321' zurückgeliefert bekommen. Gibt's eine fertige Methode um alle Kinder des Objektes anzuzeigen? Ansonsten hätte ich nur die Idee, mir die generierten IDs alle in ein Array zu schreiben... sodass ich einen Überblick behalte, welche IDs nun in dem jsonSTRING-Object herumschwirren... Danke für Hilfe im Vorraus, Grüße, --rabies.

Antwort 1 von rabies

Aeh, Fehler... der jsonSTRING sieht so aus:

jsonSTRING = { '12345' : { 'name1' : 'wert1', 'name2' : 'wert2' }, '54321' : { 'name1' : 'wert1', 'name2' : 'wert2' }}


--rabies.

Antwort 2 von rfb

Die for-in-Schleife sollte dir das gewünschte Ergebnis liefern können.

Eigenschaftennamen eines Objekts (dein jsonSTRING) sollten meines Wissens wie alle Variablennamen mit einem Buchstaben beginnen.

Antwort 3 von rabies

for...in
kannte ich noch nicht, danke. Das hat das Problem gelöst. :)

Der JavaScript-Parser mokiert sich wegen der Variablennamen nicht, wie mir scheint...

Antwort 4 von rfb

Zitat:
Der JavaScript-Parser mokiert sich wegen der Variablennamen nicht, wie mir scheint.
wie greifst du drauf zu?

Antwort 5 von rabies

Ungefähr so:


	var jsonSTRING = {
	    '123456': { name1: 'wert1', name2: 'wert2' },
	    '654321': { name1: 'wert1', name2: 'wert2' },
	}
	serializationAPI.data = jsonSTRING;
	serializationAPI.save();

	var serializedData = serializationAPI.load();
	for( obj in serializedData ) {
		alert(serializedData[obj].name2); // greift dann jeweils auf name2 von '123456' und '654321' zu
	}


serializationAPI übernimmt hier nur das schicken an den Server... serializationAPI.load wirft mir den 'geparsten' jsonString zurück...

Antwort 6 von rabies

Korrektur (das Komma nach dem zweiten Unterobjekt gehört da natürlich nicht hin):

   var jsonSTRING = {
    '123456': { name1: 'wert1', name2: 'wert2' },
    '654321': { name1: 'wert1', name2: 'wert2' }
   }


--rabies.

Antwort 7 von rfb

also nicht direkt sondern nur indirekt über die for-in-Schleife - das war's was ich wissen wollte ;-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: