Zum Inhalt springen
Quaestio

JSON-Formatierung

Fügen Sie JSON ein, dann wird es umformatiert oder auf eine einzige Zeile komprimiert.

Ergebnis

Fügen Sie JSON in das Feld oben ein.
Einbetten

Werkzeug auf Ihrer Website einbetten

Kopieren Sie den Code und fügen Sie ihn dort ein, wo das Werkzeug erscheinen soll, etwa in einem Blogbeitrag oder auf einer Schulseite. Es ist kostenlos, der Rahmen enthält keine Werbung, und das Werkzeug rechnet im Browser der Besucher.

So funktioniert es

JSON ist ein Textformat für strukturierte Daten, gebaut aus Objekten mit benannten Feldern, Listen, Zeichenketten, Zahlen, wahr, falsch und leer.

Die Formatierung ändert nur die Leerzeichen. Die Daten sind davor und danach dieselben, Sie können eine Datei also bedenkenlos umformatieren, bevor Sie sie lesen.

Die Komprimierung entfernt alle überflüssigen Leerzeichen und Zeilenumbrüche, was die Größe von eingerücktem JSON meist um zwanzig bis dreißig Prozent verringert.

Lässt sich der Text nicht auswerten, erscheint die Fehlermeldung des browsereigenen Parsers, die meist zeigt, welches Zeichen unerwartet war. Am häufigsten sind ein Komma zu viel vor einer schließenden Klammer und Anführungszeichen der falschen Art.

Kommentare sind in JSON nicht erlaubt, und Feldnamen müssen in geraden doppelten Anführungszeichen stehen. Das ist der häufigste Unterschied dazu, wie Objekte in JavaScript geschrieben werden.

So formatiert das Werkzeug

Das Werkzeug arbeitet in zwei Schritten. Zuerst geht der Text durch die Browserfunktion JSON.parse, aber nur, um zu prüfen, ob er gültig ist. Die Neuformatierung geht dann Zeichen für Zeichen durch Ihren eigenen Text: Leerraum außerhalb von Zeichenketten wird entfernt, und nach geschweiften und eckigen Klammern und nach Kommas kommen Zeilenumbrüche und Einrückungen von zwei oder vier Leerzeichen hinzu. Leere Objekte und Listen werden zusammengeschrieben. Zeichenketten werden unverändert übernommen, Escape-Sequenzen eingeschlossen. Komprimieren ist derselbe Durchgang ohne Zeilenumbrüche und Einrückungen.

Zahlen bleiben, wie sie geschrieben sind

Wer JSON in JavaScript einliest und wieder ausgibt, kann die Zahlen verändern, weil JavaScript nur einen Zahlentyp mit begrenzter Genauigkeit hat. Mit dem Code des Werkzeugs ausprobiert, wird die ganze Zahl 12345678901234567890 auf diesem Weg zu 12345678901234567000, die Zahl 1.0 zu 1 und 1e400 zu null. Im Werkzeug bleiben alle drei genau so stehen, wie sie geschrieben sind. RFC 8259 betrachtet nur ganze Zahlen bis 2⁵³ − 1, also 9 007 199 254 740 991, als sicher zwischen Systemen, und I-JSON (RFC 7493) empfiehlt, größere exakte Zahlen als Zeichenketten zu übertragen.

Doppelte Namen

Ein Objekt, das denselben Namen zweimal enthält, besteht die Prüfung. RFC 8259 sagt nur, dass Namen eindeutig sein sollten und dass nicht vorhersehbar ist, was ein Empfänger mit Dubletten macht; viele Parser behalten nur den letzten Wert. Das Werkzeug behält beide, die Dublette ist im Ergebnis also zu sehen. Ein Umweg über JavaScript hätte den ersten Wert stillschweigend verworfen. I-JSON verbietet doppelte Namen ganz.

Häufige Fehler

Ein Tabulator oder ein Zeilenumbruch innerhalb einer Zeichenkette macht den Text ungültig, weil RFC 8259 verlangt, dass die Steuerzeichen U+0000 bis U+001F maskiert werden, etwa als \t für einen Tabulator. Das passiert leicht, wenn Text aus einer Tabellenkalkulation eingefügt wird. NaN und Infinity, die es in JavaScript gibt, aber nicht in JSON, werden ebenfalls abgewiesen, und ebenso eine Bytereihenfolgemarke am Anfang, obwohl RFC 8259 Parsern erlaubt, sie zu übergehen.

Quellen

So werden die Werkzeuge geprüft