home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Das Datenformat JSON

Das Datenformat JSON (JavaScript Object Notation) ist ein Datenformat zum Austausch von Daten zwischen Andwendungen.


Dieses Format ist ähnlich wie XML weißt jedoch ein paar Unterschiede auf:


Gemeinsamkeiten:

- Beide Typen sind hierarchisch

- beide Typen sind "menschenlesbar"

 

Unterschiede:

- JSON ist "schlanker" als XML

- JSON kennt nur einen bestimmten Satz an Datentypen, in XML kann man neue Datentypen selbst definieren

- JSON kennt Arrays, XML nicht

- JSON lässt sich direkt in JavaScript Objekte wandeln

Aufbau eines JSON Objekts

Ein Jason Objekt ist hierarchisch aufgebaut, das heißt, ein JSON Object beginn immer zu erst mit einer geschweiften Klammer. 

Darin können wir dann verschiedene Datentypen benutzen, die Datentypen sind implizit deklariert. Das heiß0t, wenn ein Datentyp mit "" deklariert wird, geht JSON von einem String aus.


JSON kennt folgende Datentypen: 

-Strings

-Zahlen: 1, 1.23, 1.2E-3, -4.5

-Boolsche Variablen: True, False

-Null

-Objekt

-Arrays

 

Diese werden dann nach folgendem Schema hierarchisch in JSON aufgebaut:

Beispiel JSON

{
    "resource" : {
         "classname" : "Quote",
         "fields" : {
              "name" : "USD/KRW",
              "price" : "1111.300049",
              "symbol" : "KRW=X",
              "ts" : "1350021593",
              "type" : "currency",
              "utctime" : "2012-10-12T05:59:53+0000",
              "volume" : "663253708"
       }
   }
}

Navigation in einem JSON Objekt

In einem JSON Objekt, muss man immer entlang den hierarchischen Stufen navigieren. 

Um das Beispiel von oben aufzugreifen, wenn wir hier auf den "name" zugreifen wollen müssten wir das wie folgt tun:

resource.fields.name;


Also prinzipiell immer nach der Faustregel, wenn eine Klammer auf gemacht wird, müssen wir wieder mit einen Punkt eine Ebene tiefer navigieren.

Sollte die JSON Datei mehrere Felder (fields) enthalten, werden diese wie ein Array behandelt. So würde der Zugriff auf die einzelnen "fields" - Objekte folgendermaßen aussehen:

 

resource.fields[0].name;      -- für das erste Objekt

resource.fields[1].name;      -- für das zweite Objekt

 

... und so weiter.

Beispiel für die iteration über das oben erwähnte JSON-Objekt


var felder = object.fields;

var alleFelder = "";

for(feld in felder){

alleFelder += felder[feld].name + " ";

}

alert("Alle Felder: " + alleFelder);