JSON einfügen – der Formatter rückt es lesbar ein oder minimiert es, prüft die Syntax und nennt bei Fehlern die genaue Position.
JSON steht für JavaScript Object Notation und ist das verbreitetste Format für den Datenaustausch zwischen Programmen. Der Formatter liest die Eingabe ein, prüft sie auf syntaktische Korrektheit und gibt sie anschließend eingerückt oder minimiert wieder aus. Schlägt das Einlesen fehl, nennt er Zeile und Zeichenposition des Fehlers – meist genügt das, um ihn sofort zu finden.
Vier Fehler machen den Großteil aus. Erstens: Schlüssel müssen in doppelten Anführungszeichen stehen – einfache Anführungszeichen sind zwar in JavaScript erlaubt, in JSON aber nicht. Zweitens: kein Komma nach dem letzten Element einer Liste oder eines Objekts; dieses „trailing comma" ist die mit Abstand häufigste Fehlerquelle. Drittens: keine Kommentare – weder mit Schrägstrichen noch mit Rautezeichen. Und viertens akzeptiert JSON keine Sonderwerte wie NaN, Infinity oder undefined.
Erlaubt sind genau sechs Typen: Zeichenketten, Zahlen, die Wahrheitswerte true und false, null, Arrays in eckigen Klammern und Objekte in geschweiften. Es gibt keinen eigenen Datumstyp – Zeitangaben werden üblicherweise als Zeichenkette im ISO-8601-Format übertragen. Zahlen sind stets Dezimalzahlen ohne führende Null und ohne Hexadezimalschreibweise.
Beide Varianten enthalten exakt dieselben Daten. Die eingerückte Form ist zum Lesen und Debuggen gedacht, die minimierte für die Übertragung: Sie entfernt alle Leerzeichen und Zeilenumbrüche und spart je nach Struktur zwischen 15 und 40 Prozent an Datenmenge. Bei Schnittstellen mit hohem Aufkommen summiert sich das erheblich, weshalb Server ihre Antworten praktisch immer minimiert ausliefern – zusätzlich meist noch komprimiert. Der Rechner zeigt die Ersparnis direkt an.
Weil die Strenge im Alltag manchmal stört, existieren Erweiterungen. JSON5 erlaubt Kommentare, einfache Anführungszeichen, unquotierte Schlüssel und ein Komma nach dem letzten Element – es ist aber kein Standard und wird von normalen Parsern abgelehnt. JSON Lines wiederum legt ein vollständiges JSON-Objekt pro Zeile ab, ohne umschließendes Array; das Format eignet sich für Protokolldateien und sehr große Datenmengen, weil es sich zeilenweise verarbeiten lässt, ohne die gesamte Datei in den Speicher zu laden. Beide Formate scheitern in diesem Formatter, weil er den strengen Standard prüft – und genau das ist beabsichtigt.
In fast jeder Programmierschnittstelle im Web, in Konfigurationsdateien wie package.json oder composer.json, in strukturierten Daten für Suchmaschinen und in Datenbanken wie MongoDB. Auch die FAQ-Auszeichnung dieser Seite ist JSON: Das Schema-Format JSON-LD, das Google für Rich Results auswertet, folgt denselben Regeln. Ein einziges überzähliges Komma reicht dort, um die gesamte Auszeichnung ungültig zu machen – ein Grund, warum ein Syntaxcheck vor dem Veröffentlichen sinnvoll ist. Verwandte Werkzeuge sind der Base64-Umrechner und der Zeichenzähler.