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:
--rabies.
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.
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?Der JavaScript-Parser mokiert sich wegen der Variablennamen nicht, wie mir scheint.
Antwort 5 von rabies
Ungefähr so:
serializationAPI übernimmt hier nur das schicken an den Server... serializationAPI.load wirft mir den 'geparsten' jsonString zurück...
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):
--rabies.
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 ;-)

