XML gab maschinenlesbaren Daten eine Grammatik aus Tags, Namespaces und Schemata – ausdrucksstark und schwer genug, dass das Senden eines einfachen Datensatzes das Schreiben eines Dokuments bedeutete. JSON schlug den entgegengesetzten Weg ein: Wie es auf seiner Homepage heißt, baut JSON auf zwei Strukturen auf, einer Sammlung von Name/Wert-Paaren und einer geordneten Liste von Werten, geschrieben mit den Konventionen, die Programmierern von C, C++, C#, Java, JavaScript, Perl und Python bereits vertraut sind – weshalb jene Seiten es genau deshalb als ideale Datenaustauschsprache bezeichnen.

Die Herkunft des Formats und seine Emanzipation von JavaScript zeigen sich beide in seiner Standardisierung. RFC 8259, „The JavaScript Object Notation (JSON) Data Interchange Format“, beschreibt ein leichtgewichtiges, textbasiertes, sprachunabhängiges Datenaustauschformat, das von den Literalen von JavaScript abgeleitet ist, wie sie in ECMAScript definiert sind – für jeden Webbrowser erkennbar, aber keinem von ihnen gehörend. Die JSON-Arbeitsgruppe der IETF führte es über RFC 7159 zu RFC 8259 und machte JSON im Dezember 2017 zu einem Internetstandard.

Die Folge war Verdrängung. Wo APIs einst XML-Schemata aushandelten, geben sie nun Objekte und Arrays zurück, die jeder Programmierer auf einen Blick lesen kann – ein Format, das den Standardisierungsprozess erst nach seiner Verbreitung erreichte, statt dass der Standardisierungsprozess Anwender hätte anwerben müssen.

Zwei Strukturen genügen für jede API

Zwei Strukturen – Objekte und Arrays – fügen sich zu nahezu jeder Datenform zusammen, die Programme zwischen Systemen austauschen, sodass das Format keinen Erweiterungsmechanismus benötigte.

Die Ableitung der Syntax aus JavaScript-Literalen machte das Format für die am schnellsten wachsende Entwicklergemeinschaft sofort lesbar, während die Sprachunabhängigkeit alle anderen Gemeinschaften einbezog.

Es war kein Schema und kein Tag-Vokabular erforderlich, sodass eine API ihre Nutzlast ändern konnte, ohne eine Dokumenttypdefinition abzustimmen.

Die Standardisierung durch die IETF nach der Verbreitung besiegelte die Interoperabilität, ohne die Last aufzuerlegen, die den Vorgänger unattraktiv machte.

Ein Format gewinnt durch Weglassen: Weniger Konstrukte bedeuten weniger Meinungsverschiedenheiten, und ein Datenformat, das jeder Programmierer ohne Dokumentation lesen kann, beseitigt den Widerstand, der reichere Vorgänger ins Stocken brachte.

RFC 8259 machte JSON im Dezember 2017 zu einem offiziellen Internetstandard; zu diesem Zeitpunkt war es bereits zum Standardaustauschformat für Web-APIs, Konfigurationen und Protokolldaten geworden – ein seltener Fall, in dem ein Format von einer Arbeitsgruppe standardisiert wurde, die das bestehende Verhalten der Welt ratifizierte.

DEN BELEGEN FOLGEN

Die Quellen

  1. RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format IETF (Datatracker) · datatracker.ietf.org ·
  2. Introducing JSON json.org · json.org