JSON einfügen, Button drücken: Der JSON Formatter rückt den Text ein, macht eine Zeile daraus oder sortiert die Keys. Nebenbei zeigt er, ob der Text überhaupt gültig ist. Geprüft wird mit dem JSON.parse deines Browsers. Was hier durchgeht, akzeptiert auch JavaScript.
Zwei Dateien, ein Diff
Eine package.json oder eine Übersetzungsdatei sieht nach einem Merge völlig anders aus. Vermutlich hat sich nur die Reihenfolge der Keys geändert. Sortiere beide Fassungen mit der Sortierfunktion und lege sie in ein Diff-Tool: Es bleiben nur die echten Änderungen. Die Sortierung gilt auf jeder Ebene. Arrays behalten ihre Reihenfolge.
Sortiert wird nach Zeichencode, nicht nach Wörterbuch. Deshalb steht "Zebra" vor "apple". Keys wie "10" setzt JavaScript selbst immer an den Anfang.
Was beim Parsen verloren geht
Der Formatter verschiebt keinen Text. Er liest ihn als JavaScript-Werte und schreibt diese neu. Daraus folgen die Überraschungen. Aus 1.0 wird 1. Aus 12345678901234567890 wird 12345678901234567000, denn JavaScript-Zahlen sind Doubles und verlieren oberhalb von 9007199254740991 Stellen. Lange IDs gehören in Strings.
Steht ein Key in einem Objekt zweimal, gewinnt der letzte Wert, und der erste ist nach dem Formatieren weg. Akzeptiert wird nur striktes JSON: Kommentare, ein Komma nach dem letzten Eintrag, einfache Anführungszeichen und Keys ohne Anführungszeichen sind Fehler, auch wenn JavaScript oder JSON5 sie erlauben. Ein Komma am Ende ist der häufigste Grund für die rote Fehlerbox.
Eine Einrückung mit Tabs gibt es nicht, und einen Rückgängig-Button auch nicht. Die Formatieren-Buttons überschreiben den Text im Feld, also kopiere das Original vorher. Eine Größengrenze setzt die Seite nicht, sie verarbeitet den Text aber im Hauptthread. Eine Datei mit mehreren zehn Megabyte kann den Tab kurz einfrieren. Chrome, Firefox und Safari formulieren die Fehlermeldungen unterschiedlich.
Die Buttons des JSON Formatters der Reihe nach
- Im Feld steht beim Start ein kleines, schon eingerücktes Beispiel. Löschen leert das Feld, Beispiel laden holt das Beispiel zurück. Ersetze es durch deinen Text.
- Die Statusanzeige unter dem Feld wechselt beim Tippen zwischen "Gültiges JSON" und "Ungültiges JSON" und nennt die Größe. Bei einem Fehler zitiert eine rote Box über dem Feld die Meldung des Parsers.
- Formatieren (2 Spaces) und Formatieren (4 Spaces) ersetzen den Text durch die eingerückte Fassung. Ist der Text ungültig, bleibt er unverändert und die Fehlerbox bleibt sichtbar.
- Minimieren macht eine Zeile ohne Leerraum daraus, praktisch für einen
curl-Aufruf oder eine einzeilige Umgebungsvariable. Keys sortieren (A-Z) ordnet die Keys jedes Objekts und rückt mit 2 Spaces ein. - Kopieren kopiert den Text aus dem Feld, Download .json speichert ihn als
data.json.
Kein Upload, kein Speicher
Alles läuft als JavaScript auf der Seite. Beim Klick geht keine Anfrage raus, das zeigt dir der Netzwerk-Tab der Entwicklertools. Dein Text landet nicht im Speicher des Browsers. Kopieren nutzt die Zwischenablage, Download legt die Datei auf deinem Gerät ab.