JSON
Rancor
- javascript
Moin Leutz,
ich hab mal wieder en kelines Problem...
Ich übergebe nach JAVASCRIPT mit JSON Variablen. Diese kommen auch an: allerdings kann ich nicht wie gewünscht auf die Schlüssel zugreifen.
z.B:
var test ={
"Kreditkarte" : "Xema",
"Nummer" : "1234-5678-9012-3456",
"Inhaber" : {
"Name" : "Reich",
"Vorname" : "Rainer",
"Geschlecht" : ""männlich"",
"Vorlieben" : [
"Reiten",
"Schwimmen",
"Lesen"
],
"Alter" : null
},
"Deckung" : 1e+6,
"Währung" : "EURO"
}
Ich würde gerne alle Schlüssel ("Kreditkarte", "Nummer", "Inhaber"..) in meinem script ansprechen.
zb so:
alert(test);
Jetzt sollten dann meiner Vorstellung nach alle Schlüssel ausgegeben werden - werden sie aber net, anstelle dessen kommt [objekt: Objekt].
Weiß jemand wie ich an die Schlüssel ran komme?
ps. das hier ist nur ein Beispiel in meinem speziellen fall kenne ich die Schlüssel nicht, da diese dynamisch erstellt werden und sich immer ändern.
[latex]Mae govannen![/latex]
Ich würde gerne alle Schlüssel ("Kreditkarte", "Nummer", "Inhaber"..) in meinem script ansprechen.
zb so:
alert(test);
Jetzt sollten dann meiner Vorstellung nach alle Schlüssel ausgegeben werden - werden sie aber net, anstelle dessen kommt [objekt: Objekt].
Weiß jemand wie ich an die Schlüssel ran komme?
Mit einer for-in _Schleife.
Cü,
[latex]Mae govannen![/latex]
Ich würde gerne alle Schlüssel ("Kreditkarte", "Nummer", "Inhaber"..) in meinem script ansprechen.
zb so:
alert(test);
Jetzt sollten dann meiner Vorstellung nach alle Schlüssel ausgegeben werden - werden sie aber net, anstelle dessen kommt [objekt: Objekt].
Weiß jemand wie ich an die Schlüssel ran komme?
Mit einer for-in _Schleife.
Cü,
Hmm und wie komm ich dann an die Unterpunkte ran z.b: bei Inhaber??
ps.: wie gesagt ich kenne die schlüssel nicht
Hmm und wie komm ich dann an die Unterpunkte ran z.b: bei Inhaber??
mit einer weiteren schleife?
[latex]Mae govannen![/latex]
Mit einer for-in _Schleife.
Hmm und wie komm ich dann an die Unterpunkte ran z.b: bei Inhaber??
ps.: wie gesagt ich kenne die schlüssel nicht
Grob:
Schreibe dir eine Funktion, die das JSON-Objekt als Parameter entgegennimmt und mit besagter For-in-Schleife ausliest. Prüfe für jedes Element, ob es ein Objekt[1] ist, wenn ja, rufe die Funktion mit dem Unterobjekt als parameter rekursiv erneut auf.
Schau dir einfach mal http://json.org/ an, dort gibt es fertige Lösungen.
[1] das nicht Array oder null ist
Cü,
[latex]Mae govannen![/latex]
Mit einer for-in _Schleife.
Hmm und wie komm ich dann an die Unterpunkte ran z.b: bei Inhaber??
ps.: wie gesagt ich kenne die schlüssel nicht
Grob:
Schreibe dir eine Funktion, die das JSON-Objekt als Parameter entgegennimmt und mit besagter For-in-Schleife ausliest. Prüfe für jedes Element, ob es ein Objekt[1] ist, wenn ja, rufe die Funktion mit dem Unterobjekt als parameter rekursiv erneut auf.Schau dir einfach mal http://json.org/ an, dort gibt es fertige Lösungen.
[1] das nicht Array oder null ist
Cü,
Also die For In Schleife funktioniert ja pronizipiell ganz gut ABER die Schleife wird doch mit den Wertpaaren durchlaufen und net mit den Schlüsseln oder?
[latex]Mae govannen![/latex]
Mit einer for-in _Schleife.
Hmm und wie komm ich dann an die Unterpunkte ran z.b: bei Inhaber??
ps.: wie gesagt ich kenne die schlüssel nicht
Grob:
Schreibe dir eine Funktion, die das JSON-Objekt als Parameter entgegennimmt und mit besagter For-in-Schleife ausliest. Prüfe für jedes Element, ob es ein Objekt[1] ist, wenn ja, rufe die Funktion mit dem Unterobjekt als parameter rekursiv erneut auf.Schau dir einfach mal http://json.org/ an, dort gibt es fertige Lösungen.
[1] das nicht Array oder null ist
Cü,
Also die For In Schleife funktioniert ja pronizipiell ganz gut ABER die Schleife wird doch mit den Wertpaaren durchlaufen und net mit den Schlüsseln oder?
Ok ich nehm alles zurück die for in schleife funktioniert, ich hatte es blöder weise mit ner for each schleife umgesetzt....
Thx
Ok ich nehm alles zurück die for in schleife funktioniert, ich hatte es blöder weise mit ner for each schleife umgesetzt....
Es gibt in JavaScript (ECMAScript) keine for-each-Schleife.
Lediglich JavaScript 1.6, ein proprietärer Zusatz von Mozilla, definiert eine for-each-in-Schleife. Damit wirst du aber nirgendwo landen, da sie nur Firefox (d.h. die Gecko-Engine) unterstützt.
Mathias
Hi,
bitte zitiere vernuenftig!
Also die For In Schleife funktioniert ja pronizipiell ganz gut ABER die Schleife wird doch mit den Wertpaaren durchlaufen und net mit den Schlüsseln oder?
Sowohl, als auch.
(Wobei die "Schluessel" eigentlich Attribute oder Eigenschaften des Objektes sind.)
MfG ChrisB
So wie gehabt: Du kannst alle Objekte (auch Arrays) mit for-in-Schleifen durchlaufen.
var test = { a: 1, b: 2, c: 3 };
for (var i in test) { alert(test[i]; }
Bei Arrays funktioniert das genauso, wobei i in diesem Fall nicht mit "a", "b" und "c", sondern mit 1, 2 und 3 gefüllt ist.
Gruß, LX
Ok ich denke ich hab mich schlecht ausgedrückt:
Meine JSON übergabe sieht in etwa so aus:
{"var1":{"var1.1":"1","var1.2":"2","var1.3":"3","var2":["test","test2","test3"]}
und ich möchte sozusagen die schlüssel var1.1 - var1.3