JSON (gesprochen wie Jason) ist ein guter Bekannter von allen, die etwas hinter die Kulissen des Web und von Datenschnittstellen schauen. JSON ist kein so besonders beliebter Typ, weil er sehr flexibel und verbiegbar ist. Aber viele lieben ihr auch genau deswegen. Neulich wurde ich mal gefragt, ob JSON bearbeiten programmieren ist. Ist es nicht. Aber warum?
JSON steht für Javascript Object Notation – Javascript Objekt-Schreibweise. Und damit ist eigentlich die Antwort gegeben, warum JSON eben Schema und nicht Logik ist: JSON ist ein Weg, zu beschreiben, wie ein Objekt aussieht. Ja, JSON sieht aus wie eine Programmiersprache. Weil es in der Syntax von Javascript funktioniert. Aber das ist genau das gleiche wie “in Deutsch schreiben” mit “ein Gedicht” gleichzusetzen.
Also – was ist JSON dann?
In einem JSON steckt ein “Objekt”. Objekte sind Programmierkonstrukte, nämlich konkrete Dinge, die nach einem Bauplan (einer Klasse) gebaut sind. Jedes Objekt ist irgendwo zu Ende, und in Javascript ist es begrenzt durch geschweifte Klammern:
{ }
Innerhalb dieser Klammern werden nun Wertepaare aufgezählt – Key-Value-Pairs nennt man das – und zu jedem Key kann es einen Wert geben, mehrere Werte oder mehrere Key-Value-Paare. Nehmen wir Jason, der vom Typ Mensch ist:
{ name: "Jason", type: "Mensch" }
Jason könnte nun Mutter und Vater haben namens Adam und Eva (huh, unsolides Bibelwissen.
{ name: "Jason", type: "Mensch", parents: { mother: "Eva", father: "Adam" } }
Und dann geben wir ihm noch ein Geburtsjahr und Kinder:
{ name: "Jason", type: "Mensch", born: 1000, bc: true parents: { mother: "Eva", father: "Adam" }, children: ["Jonathan", "Sarah"] }
So. Jetzt sind zum einen fast alle Datentypen eingestreut (Text, Integer, Boolean, Array, Map. Aber es fehlt einiges: Dieser “Jason” hatte keinerlei Funktion – er kann nichts. Es gibt auch keine Möglichkeit, etwas anderes mit ihm zu machen als bestimmte Daten in ihm abzulegen und wieder herauszubekommen. Jason liefert uns keine Logik.
JSON wird gerne mit Programmierung verwechselt, weil es oft eine Konfiguration speichert und wenn man die verändert, sich auch das ganze User-Interface ändert.
Im nächsten Schritt schauen wir demnächst mal auf das Objekt, das in dem JSON abgebildet ist. Dann sehen wir schnell, welche Fähigkeiten von Jason im JSON nicht zu sehen sind, und spätestens dann sollte klar sein, warum das trotz der geschweiften Klammern und so kein Programm ist, was wir hier sehen.