JSON-Format: Was es ist, wie es aufgebaut ist und was es mit APIs zu tun hat

Wenn zwei Softwareanwendungen strukturierte Daten austauschen müssen, brauchen sie ein gemeinsames Format, das leichtgewichtig, einfach und für beide Systeme verständlich ist (und möglichst auch für Menschen).
Heute ist dieses Format fast immer JSON. Anfang der 2000er-Jahre entstanden, um den Datenaustausch innerhalb von Webanwendungen zu vereinfachen, ohne das Netzwerk zu belasten, ist es zum Standard für REST-APIs, für Konfigurationsdateien und für die Datenspeicherung in verschiedenen Datenbanken geworden.
JSON steht für JavaScript Object Notation. Es ist ein textbasiertes Format zur Strukturierung und zum Austausch von Daten, das sowohl für Menschen als auch für Maschinen leicht lesbar ist.
JSON wurde Anfang der 2000er-Jahre von Douglas Crockford beschrieben. Crockford selbst verschickte im April 2001 die erste JSON-Nachricht, und zwar an Chip Morningstar, seinen Kollegen bei Electric Communities.
Obwohl JSON auf einer Teilmenge von JavaScript (Standard ECMA-262) basiert, ist es ein vollständig programmiersprachenunabhängiges Textformat. Es verwendet jedoch Konventionen, die allen vertraut sind, die mit C und C++, Java, Perl, Python und anderen Programmiersprachen arbeiten.
JSON wurde 2013 zum ECMA-Standard und zuletzt 2017 mit der Veröffentlichung der Norm ISO/IEC 21778 aktualisiert.
Eine JSON-Datei ist eine Textdatei, die auf zwei grundlegenden Strukturen basiert:
Innerhalb der Datei müssen Schlüssel (oder Namen) immer in doppelte Anführungszeichen gesetzt werden (zum Beispiel: "name"). Werte und Schlüssel-Wert-Paare werden durch ein Komma getrennt. Innerhalb eines Objekts folgt auf den Schlüssel ein Doppelpunkt, der den jeweiligen Wert einleitet.
Eine JSON-Datei kann zum Beispiel so aussehen:
{
"name": "Marco",
"alter": 30,
"student": false,
"interessen": ["Programmieren", "Lesen", "Reisen"],
"adresse": {
"stadt": "Rom",
"plz": "00100"
},
"telefon": null
}
Bei den Werten unterstützt das JSON-Format einige wenige grundlegende Datentypen:
Strings können beliebiger Art sein. Der aktuelle ECMA-Standard besagt:
„Die JSON-Syntax erlegt den als Namen verwendeten Strings keinerlei Einschränkungen auf, verlangt nicht, dass Namens-Strings eindeutig sind, und misst der Reihenfolge der Name/Wert-Paare keine Bedeutung bei.“
Da es sich um ein leichtgewichtiges, für Menschen lesbares (human readable text) und von allen gängigen Programmiersprachen unterstütztes Format handelt, ist JSON zum Standard-Datenformat für REST-APIs geworden, aber auch für Konfigurationsdateien und verschiedene Datenbanken wie MongoDB und PostgreSQL. Im Grunde wird es überall dort eingesetzt, wo zwei Programme strukturierte Daten austauschen.
Bei REST-APIs sendet der Server JSON im Body der Antwort und kennzeichnet es mit dem Header Content-Type: application/json.
In diesem Kontext wird das Format je nach Operation asymmetrisch verwendet:
In beiden Fällen ist der Body der zwischen Client und Server ausgetauschten Nachrichten vollständig in diesem Format strukturiert.