So funktioniert es
Die Seite liest Ihren Text mit einem strikten JSON-Parser nach RFC 8259, dem JSON-Standard. Er hält am ersten Zeichen an, das nicht JSON sein kann, und meldet, wo es steht und warum: ein Komma am Ende, ein einfaches Anführungszeichen, ein fehlender Doppelpunkt oder ein fehlendes Komma, ein Kommentar, eine Zahl, die JSON nicht erlaubt.
Gültiges JSON wird mit der gewählten Einrückung zurückgeschrieben oder, beim Minimieren, ohne alle optionalen Leerzeichen. Zahlen und Zeichenketten werden genau so übernommen, wie Sie sie geschrieben haben: Eine lange ID wie 12345678901234567890 behält jede Ziffer, und ein Escape wie \u00e9 bleibt, wie er ist. Das Sortieren ordnet die Schlüssel jedes Objekts nach den Codepoints ihrer Zeichen; Schlüssel, die doppelt vorkommen, bleiben beide erhalten, in ihrer Reihenfolge.
Alles läuft in Ihrem Browser. Dateien bis zu einigen Megabyte sind im Nu formatiert; ab 1 MB wartet die Seite auf Ihren Klick auf „Formatieren“, statt bei jedem Tastendruck neu zu formatieren.
Beispiel
Diese Eingabe hat ein Komma nach dem letzten Element:
{
"name": "web-1",
"ports": [80, 443,]
}Der Validator hält in Zeile 3, Spalte 20 an diesem Komma an und meldet, dass JSON kein Komma nach dem letzten Element erlaubt. Entfernen Sie es, dann wird der Text wie gezeigt formatiert oder zu einer Zeile mit 33 Zeichen minimiert.
{
"name": "web-1",
"ports": [
80,
443
]
}Fragen
Warum schlägt mein JSON wegen eines Kommas am Ende fehl?
Weil JSON ein Komma nur zwischen zwei Elementen erlaubt. JavaScript, Python und viele Konfigurationsformate akzeptieren ein Komma nach dem letzten Element einer Liste oder eines Objekts; JSON nicht, und strikte Parser wie JSON.parse, jq und die meisten APIs lehnen das ganze Dokument ab. Entfernen Sie das Komma, auf das der Fehler zeigt.
Kann JSON Kommentare enthalten?
Nein. JSON hat keine Kommentarsyntax. Manche Programme lesen stattdessen JSONC oder JSON5, die Kommentare erlauben (die Einstellungen von VS Code und tsconfig.json sind JSONC), aber ein strikter JSON-Parser lehnt sie ab. Löschen Sie die Kommentare oder halten Sie eine Notiz in einem gewöhnlichen Feld wie "_comment" fest.
Ändert das Formatieren meine Zahlen?
Hier nicht. JSON.parse von JavaScript macht jede Zahl zu einem 64-Bit-Gleitkommawert, sodass 12345678901234567890 als 12345678901234567000 und 1.10 als 1.1 zurückkommt. Dieser Formatter wandelt Zahlen nie um: Zahlen, Zeichenketten und Escapes werden genau so zurückgeschrieben, wie sie waren. Nur die Leerzeichen und Zeilenumbrüche dazwischen ändern sich.
Was ist der Unterschied zwischen Formatieren und Minimieren?
Beim Formatieren kommen Zeilenumbrüche und Einrückungen hinzu, damit ein Mensch die Struktur lesen kann. Beim Minimieren entfällt jedes Leerzeichen und jeder Zeilenumbruch, den JSON nicht braucht, sodass die Datei kleiner zu speichern und zu senden ist. Beide enthalten genau dieselben Daten; ein Programm liest sie gleich.
Wird das eingefügte JSON irgendwohin gesendet?
Nein. Es wird vom Skript dieser Seite in Ihrem Browser geparst und formatiert und verlässt nie Ihr Gerät, ist also sicher für Konfigurationen und API-Antworten mit Schlüsseln oder personenbezogenen Daten. Sobald die Seite geladen ist, funktioniert sie offline.