JSON verstehen - Was ist JSON?
JSON ist ein Datenformat und dient zum Datenaustausch zwischen Anwendungen. Den Begriff liest man immer häufiger. Kein Wunder, denn JSON ist mächtig und sehr einfach zu verstehen.
Eine JSON-Datei enthält Objekte. Diese Objekte wiederum haben verschiedenen Eigenschaften. Die Eigenschaften des Objektes können selbst auch Objekte sein die wiederum eigene Eigenschaften haben. Das ermöglicht eine sehr einfache und skalierbare Verschachtelung.
Aber fangen wir mal ganz klein an...
Das Prinzip
Ein JSON-Dokument besteht immer aus mindestens einem Objekt. Ein Objekt wird durch geschweifte Klammern definiert.
{
}
Stellen wir uns mal vor, das Objekt bin ich - ein Objekt mit dem Namen Pascal.
{
"name": "Pascal"
}
Neben meinem Namen habe ich auch noch weitere Eigenschaften, die mich ausmachen. Also bekommt das Objekt mit dem "name": "Pascal"
weitere Eigenschaften wie die augenfarbe
oder das alter
.
{
"name": "Pascal",
"augenfarbe": "Braun",
"alter": 23
}
Arrays
Wer sich mit dem Thema programmieren beschäftigt, wir sicherlich wissen was ein Array ist. Ein Array ist strenggenommen eine Liste die Werte enthält.
Die Liste hobbys
enthält 3 Werte.
"hobbys" = ["Schlafen", "Essen", "Netflix"]
In einer Liste wird immer bei 0 angefangen zu zählen.
Die Werte sind also folgendermaßen hinterlegt:
hobbys[0] = "Schlafen"
hobbys[1] = "Essen"
hobbys[2] = "Netflix"
Arrays im JSON-Objekt
Auch in unserem JSON-Objekt können wir Arrays verwenden.
{
"name": "Pascal",
"augenfarbe": "Braun",
"alter": 23,
"hobbys": ["Schlafen", "Essen", "Netflix"]
}
Objekte
Was ist, wenn ich in meinen Hobbys nochmal Unterteilen möchte? Zum Beispiel nach Favoriten. Ich erstelle also für jeden Wert in meiner Liste, eine eigene Liste.
"schlafen": ["Bett", "Couch", "Boden"]
"essen": ["currywurst", "schnitzel mit pommes", "bier"]
"netflix": ["Big Bang Theory", "How To Get Away With Murder"]
"hobbys": {
"schlafen": ["Bett", "Couch", "Boden"],
"essen": ["currywurst", "schnitzel mit pommes", "bier"],
"netflix": ["Big Bang Theory", "How To Get Away With Murder"]
}
JSON-Datei
Wenn ich das JSON-Objekt hobbys
in mein Objekt mit dem "name": "Pascal"
einfüge, dann sieht das so aus:
{
"name": "Pascal",
"augenfarbe": "Braun",
"alter": 23,
"hobbys": {
"schlafen": ["Bett", "Couch", "Boden"],
"essen": ["currywurst", "schnitzel mit pommes", "bier"],
"netflix": ["Big Bang Theory", "How To Get Away With Murder"]
}
}
Sagen wir, die Datei bekommt den Namen pascal.json
Werte aus einer JSON-Datei auslesen
Wie man die Werte eines JSON-Objektes auslesen kann, ist von Programmiersprache zu Programmiersprache verschieden. Häufig werden Objekte genau wie Listen angesprochen. Hier mal ein Beispiel wie es aussehen könnte.
Zuerst definiert man das Objekt auf das zugegriffen werden soll. In meinem Fall die Datei pascal.json
.
var objektPascal = pascal.json;
Beispiele
objektPascal.name
#> Pascal
objektPascal.alter
#> 23
objektPascal.hobbys.schlafen
#> Bett,Couch,Boden
objektPascal.hobbys.schlafen[0]
#> Bett
objektPascal.hobbys.schlafen[2]
#> Boden
Hast du JSON verstanden?
Statt dem Objekt hobbys
mit den Listen als Inhalt, kann man auch eine Liste mit Objekten als Inhalt definieren.
{
"name": "Pascal",
"augenfarbe": "Braun",
"alter": 23,
"hobbys": [
{
"name": "schlafen",
"favoriten": ["Bett", "Couch", "Boden"]
},
{
"name": "essen",
"favoriten": ["currywurst", "schnitzel mit pommes", "bier"]
},
{
"name": "netflix",
"favoriten": ["Big Bang Theory", "How To Get Away With Murder"]
}
]
}
objektPascal.hobbys[0].name
#> schlafen
objektPascal.hobbys[0].favoriten
#> Bett,Couch,Boden
objektPascal.hobbys[0].favoriten[0]
#> Bett
Um letzteres mit Worten auszudrücken:
Mein Liebstes Hobby [0] ist schlafen, und das mache ich am liebsten [0] im Bett.
Mein zweit-liebstes Hobby [1] wäre essen, und da mag ich am liebsten [0] die gute alte Currywurst.