JSON verstehen - Was ist JSON?

World Feb. 14, 2020

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.

Pascal

Manchmal hab ich bock auf schreiben ...

Großartig! Das Abonnement wurde erfolgreich abgeschlossen.
Großartig! Schließe als Nächstes die Kaufabwicklung ab, um vollen Zugriff zu erhalten.
Willkommen zurück! Du hast dich erfolgreich angemeldet.
Erfolg! Dein Konto ist vollständig aktiviert, du hast jetzt Zugang zu allen Inhalten.