PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript: was genau für ein Objekt ist das hier?


mittelding
2012-02-18, 12:06:03
Hallo!

Klingt erst mal doof, aber ich habe gerade Schwierigkeiten damit herauszufinden, was das hier genau für ein Objekt in Javascript ist:


var data = [
{"AKey":"AValue", "Bkey":"BValue", "CKey":"CValue", "DKey":"DValue"},
{"AKey":"AValue", "Bkey":"BValue", "CKey":"CValue", "DKey":"DValue"},
{"AKey":"AValue", "Bkey":"BValue", "CKey":"CValue", "DKey":"DValue"},
{"AKey":"AValue", "Bkey":"BValue", "CKey":"CValue", "DKey":"DValue"}
];




Ich weiß, dass das verdammt stark nach JSON aussieht, aber genau das ist der Knackpunkt, an dem ich gerade festhänge:

Normalerweiße ist JSON doch eine String-Repräsentation eines Objektes in Javascript. Und das da oben ist wohl ein Objekt in Javascript. Warum also in einem Javascript-Objekt JSON abspeichern, wenn JSON doch eigentlich nur eine andere Darstellung für Objekte ist?
Oder anders gesagt: wenn man ein ganz normales Javascript-Array bauen würde (...= new Array()) und dieses dann als JSON darstellen wollen würde, DANN hätte ich vermutet, dass da sowas ähnliches wie oben herauskommt. Aber warum direkt JSON in eine Javascript-variable speichern? wenn man diese wiederrum als JSON ausgeben wollen würde, hätte man dann JSON in JSON als Ergebnis?

Wenn es wirklich JSON ist, dann wäre es wohl ein Array (wegen den eckigen Klammern), welches wiederrum viele JSON-Objekte (wegen den geschweiften Klammern) enthält. Aber aus oben genannten Unklarheiten heraus verstehe ich auch nicht, warum das synaktisch überhaupt Javascript sein darf. In Javascript hat man Objekte, und die kann man (z.B. zur Datenübertragung via Ajax) als JSON-String darstellen. Aber was hat Javascript an sich mit JSON zu tun, doch eigentlich nichts?

Bin gerade doch verwirrt.

Danke :)

Ectoplasma
2012-02-18, 12:50:54
Das stimmt, es ist ein Vektor von Objekten mit den Attributen AKey, BKey, CKey und DKey.

JSON ist eine Untermenge der Objekt-Literal Notation von JavaScript. Du brauchst also nicht verwirrt zu sein. Ein JavaScript Objekt kann direkt aus JSON erzeugt werden. JSON in String-Repräsentation braucht man z.B. nur für einen Java APP Server, der JSON eben nicht direkt versteht. Ein App Server kann über Ajax z.B. ein JSON Text an den Browser zurückschicken, der vorne und hinten keine Anführungszeichen hat. Auf diese Art kann JavaScript die JSON Antwort direkt als Objekt verwenden.

Gast
2012-02-18, 14:08:13
JSON ist ja die JS Object Notation und beschreibt entweder Objekte oder Arrays. data ist eben ein Array aus Objekten mit je 4 Key/Value Paaren, das kann man mit JSON also direkt so hinschreiben, dass JS genau das draus macht, was man meint.
data enthält dann natürlich kein JSON mehr, sondern das konkrete Array, aber im Quellcode wird das Array natürlich mit JSON beschrieben.

mittelding.
2012-02-19, 15:25:33
Vielen Dank :)