HomeBlogWas ist JSON?
API-Grundlagen

Was ist JSON?

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.

Was ist das JSON-Format

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.

JSON: Wie ist es aufgebaut?

Eine JSON-Datei ist eine Textdatei, die auf zwei grundlegenden Strukturen basiert:

  • Objekt, eine Menge von Schlüssel-Wert-Paaren, die von geschweiften Klammern umschlossen ist;
  • Array, eine geordnete Liste von Werten in eckigen Klammern.

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

}

Welche Werte unterstützt das JSON-Format?

Bei den Werten unterstützt das JSON-Format einige wenige grundlegende Datentypen:

  • Boolesche Werte (true, false);
  • Zahlen, ganzzahlig und dezimal;
  • Strings in doppelten Anführungszeichen;
  • Arrays (geordnete Folgen von Werten, durch Kommas getrennt und in eckigen Klammern);
  • Objekte (weitere, darin verschachtelte Blöcke in geschweiften Klammern);
  • null, der spezielle Wert, der das Fehlen von Daten anzeigt.

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.“

Das JSON-Format in REST-APIs

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:

  • Bei Leseanfragen (GET) werden die Suchparameter in der Regel in der URL übertragen, und der Server antwortet mit einem JSON-Payload;
  • Bei Schreibanfragen wie POST, PUT oder PATCH sendet der Client dagegen einen JSON-Payload direkt im Body der Anfrage, um eine Ressource auf dem Server zu erstellen oder zu aktualisieren.

In beiden Fällen ist der Body der zwischen Client und Server ausgetauschten Nachrichten vollständig in diesem Format strukturiert.

Was ist JSON?
Teilen auf