MiServe DevTools

Ihre Sticker

Heften Sie hier Tools an. Sie werden in diesem Browser gespeichert.

JSON-Formatter & Validator

Formatieren, minifizieren und validieren Sie JSON: Syntaxfehler zeigt das Tool mit genauer Zeile und Spalte, große Zahlen bleiben exakt so, wie sie geschrieben sind.

Läuft in Ihrem Browser. Nichts, was Sie einfügen, wird hochgeladen.

Über dieses Tool

Was gültiges JSON ist

JSON ist in RFC 8259 und ECMA-404 definiert. Ein Dokument ist genau ein Wert: ein Objekt, ein Array, ein String, eine Zahl, true, false oder null. Strings und Objektschlüssel stehen in doppelten Anführungszeichen, und für Kommentare gibt es keine Syntax.

Viele fehlerhafte Dokumente enthalten etwas, das ein JavaScript-Objektliteral erlaubt, JSON aber nicht: ein Komma nach dem letzten Element, einfache Anführungszeichen, einen Schlüssel ohne Anführungszeichen oder einen Kommentar. Ist Häufige Fehler reparieren aktiviert, liest dieses Tool all das, außerdem rohe Zeilenumbrüche und Tabs in Strings, einen Backslash vor einem einfachen Anführungszeichen und Pythons True, False und None. Es zeigt an, was es geändert hat, und schreibt striktes JSON.

Fehlermeldungen verstehen

Jeder Browser formuliert einen Fehler von JSON.parse anders, und manche sagen nicht, wo er liegt. Dieses Tool liest den Text mit einem eigenen Parser, deshalb sind Meldung, Zeile und Spalte überall gleich. Zum Fehler springen markiert das betreffende Zeichen in der Eingabe; wenn Sie ein ganzes Dokument einfügen, erledigt das Tool das von selbst.

Die Position ist die Stelle, an der der Parser nicht weiterkam, und sie kann etwas hinter dem eigentlichen Fehler liegen. Ein fehlendes Komma wird zum Beispiel beim ersten Zeichen des nächsten Elements gemeldet.

Große Zahlen und doppelte Schlüssel

Die JSON-Grammatik begrenzt die Größe einer Zahl nicht, aber JSON.parse wandelt in JavaScript jede Zahl in eine 64-Bit-Gleitkommazahl um, die Ganzzahlen nur bis 2 hoch 53 (9.007.199.254.740.992) lückenlos exakt darstellen kann. Eine größere ID wie 12345678901234567890 kommt aus JSON.parse als 12345678901234567000 zurück. Dieser Formatter übernimmt den Text jeder Zahl, statt sie umzuwandeln: Lange Ganzzahlen, 1.0 und 1e5 kommen genau so heraus, wie sie hineingegangen sind, und er warnt Sie, wenn eine Ganzzahl einen JavaScript-Parser nicht unverändert überstehen würde.

Laut RFC 8259 sollten die Schlüssel eines Objekts eindeutig sein, und wie sich Software verhält, die einen doppelten Schlüssel erhält, ist nicht vorhersagbar. Viele Parser behalten ohne Warnung nur den letzten Wert. Der Formatter behält jeden Eintrag und zeigt Ihnen, wo das erste Duplikat steht.

Schlüssel sortieren ordnet die Schlüssel jedes Objekts auf jeder Ebene nach UTF-16-Codeeinheiten, also in der Reihenfolge der Standardsortierung von JavaScript: erst Ziffern, dann Großbuchstaben, dann Kleinbuchstaben. Arrays behalten ihre Reihenfolge. Die Größe wird in UTF-8-Bytes gezählt.

Fragen

Wird das eingefügte JSON an einen Server gesendet?

Nein. Der Text wird per JavaScript in Ihrem Browser-Tab geparst und formatiert, und das Tool stellt mit dem, was Sie einfügen, keine Netzwerkanfrage.

Warum sind Kommentare und überzählige Kommas am Ende ein Fehler?

Die Grammatik in RFC 8259 kennt keine Kommentare und verlangt nach jedem Komma einen Wert, deshalb lehnt ein standardkonformer Parser beides ab. JSON5 ist ein eigenes Format, das beides erlaubt. Aktivieren Sie die Reparaturoption, um eine solche Datei zu lesen und striktes JSON zurückzubekommen.

Was ist der Unterschied zwischen Formatieren und Minifizieren?

Beim Formatieren steht jedes Element in einer eigenen Zeile und wird eingerückt, wodurch die Struktur lesbar wird. Beim Minifizieren wird der Leerraum zwischen den Elementen entfernt, wodurch das Dokument kleiner wird, zum Speichern wie zum Senden. Die Daten sind in beiden Formen dieselben.

Ändert das Sortieren der Schlüssel die Daten?

Nicht für ein Programm, das sich an die Spezifikation hält: Sie beschreibt ein Objekt als ungeordnete Menge von Name-Wert-Paaren. Das Sortieren hilft, wenn Sie zwei Dokumente Zeile für Zeile vergleichen. Arrays sind geordnet, deshalb werden ihre Elemente nie verschoben.

Weitere Tools in Daten