JSON Formatter & Validator
Fügen Sie beliebiges JSON in das Feld oben ein, und dieser JSON Formatter und Validator prüft es schon während der Eingabe. Gültiges JSON wird mit der gewählten Einrückung übersichtlich formatiert oder zu einer einzigen Zeile minifiziert. Bei ungültigem JSON erhalten Sie eine genaue Fehlermeldung mit Zeile und Spalte, einen hervorgehobenen Ausschnitt und für die typischen Fehler eine Reparatur per Klick. Alles läuft in Ihrem Browser. API-Antworten, Konfigurationsdateien und Exporte verlassen Ihren Computer also nie.
Was dieser JSON Formatter kann
- JSON formatieren (Beautify) mit 2 Leerzeichen, 4 Leerzeichen oder Tabs. Die Ausgabe behält die ursprüngliche Reihenfolge der Schlüssel bei, solange Sie Schlüssel sortieren nicht aktivieren.
- JSON minifizieren, indem alle Leerzeichen und Zeilenumbrüche entfernt werden. Die Größenanzeige unter dem Ergebnis zeigt, wie viele Bytes Sie gespart haben.
- JSON validieren, und zwar live nach RFC 8259, dem aktuellen JSON-Standard. Die Statuszeile wird grün, sobald das Dokument korrekt ist.
- Häufige Fehler automatisch beheben: überflüssige Kommas, einfache Anführungszeichen, Schlüssel ohne Anführungszeichen, Kommentare,
True,NoneundNaNim Python-Stil sowie Zahlen wie.5oder+1. - Dateien laden über die Schaltfläche Datei öffnen oder indem Sie eine
.json-Datei auf das Eingabefeld ziehen. Danach können Sie das Ergebnis herunterladen oder für einen weiteren Durchgang wieder als Eingabe verwenden.
JSON prüfen: warum die Fehlermeldung mehr zählt als die rote Farbe
Die meisten Online-Validatoren melden nur, dass etwas nicht stimmt. Browser sind kaum besser: JSON.parse meldet in Chrome Unexpected token } in JSON at position 148, Firefox schreibt expected property name or '}', und keiner von beiden sagt Ihnen, in welcher Zeile Sie suchen müssen. Dieses Tool hat einen eigenen Parser, der sich merkt, wo jedes Token beginnt. Wenn er abbricht, erhalten Sie Zeile und Spalte, einen Ausschnitt dieser Zeile mit einer Markierung (^) unter dem fehlerhaften Zeichen und einen verständlichen Hinweis wie Vermutlich fehlt ein Komma zwischen zwei Eigenschaften. Die Schaltfläche Zum Fehler springen setzt den Cursor direkt an diese Stelle in der Eingabe.
Die häufigsten Fehler, die uns in eingefügten Dokumenten begegnen:
| Eingabe | Problem | Korrektes JSON |
|---|---|---|
{'name': 'Ada'} | einfache Anführungszeichen | {"name": "Ada"} |
{name: "Ada"} | Schlüssel ohne Anführungszeichen | {"name": "Ada"} |
[1, 2, 3,] | überflüssiges Komma am Ende | [1, 2, 3] |
{"a": 1 "b": 2} | fehlendes Komma | {"a": 1, "b": 2} |
{"ok": True} | Python-Literal | {"ok": true} |
{"x": 007} | führende Null | {"x": 7} oder {"x": "007"} |
// comment | Kommentar | in JSON nicht erlaubt |
Die Schaltfläche Automatisch reparieren behebt all diese Fälle außer dem fehlenden Komma und der führenden Null. Die Reparatur ist bewusst zurückhaltend: Sie rät nie, wohin ein fehlendes Komma gehört, denn ein Komma an der falschen Stelle würde die Bedeutung der Daten verändern, und 007 könnte als Zahl 7 oder als Code gemeint sein. In diesen Fällen erhalten Sie stattdessen die genaue Position.
Große Zahlen, Schlüsselreihenfolge und andere typische Stolperfallen
Viele Formatter arbeiten, indem sie JSON.parse und anschließend JSON.stringify aufrufen. Dieser Umweg beschädigt Daten, ohne dass es auffällt. Eine Twitter- oder Snowflake-ID wie 1234567890123456789 überschreitet die Grenze von 2^53 für Zahlen in JavaScript und kommt als 1234567890123456800 zurück. Aus dem Wert 1.0 wird 1 und aus 1e3 wird 1000. Dieser Formatter wandelt Zahlen nie in Gleitkommazahlen um. Er übernimmt jedes Literal genau so, wie es geschrieben wurde. Die Ausgabe ist also eine originalgetreue Neuformatierung der Eingabe und keine Neuinterpretation. Dasselbe gilt für Escape-Sequenzen in Strings: "\u00e9" bleibt "\u00e9" und wird nicht zu "é".
Auch die Reihenfolge der Schlüssel bleibt erhalten. Laut JSON-Spezifikation sind die Elemente eines Objekts ungeordnet, doch Konfigurationsdateien, Testdaten und Code-Reviews lesen sich viel besser, wenn die Reihenfolge stabil bleibt. Wenn Sie eine kanonische Form bevorzugen, etwa um zwei API-Antworten in einem Diff-Tool zu vergleichen, aktivieren Sie Schlüssel sortieren. Dann listen beide Dokumente ihre Eigenschaften auf jeder Verschachtelungsebene alphabetisch auf.
JSON formatieren oder minifizieren: wann was?
Formatiertes JSON ist für Menschen gedacht. Verwenden Sie es, wenn Sie eine API-Antwort prüfen, eine package.json, eine tsconfig.json oder ein OpenAPI-Dokument schreiben oder Fixtures in einem Repository ablegen, in dem jeder Diff eine Änderung pro Zeile zeigen soll. Zwei Leerzeichen sind die Konvention in der JavaScript-Welt, vier Leerzeichen sind in Python- und .NET-Projekten üblich, und bei Tabs wählt jeder Leser seine eigene Breite.
Minifiziertes JSON ist für Maschinen gedacht. Leerraum macht in einem formatierten Dokument typischerweise 20 bis 40 Prozent aus. Entfernen Sie ihn, werden an Browser gesendete Payloads kleiner, ebenso Werte in Redis oder in einer Datenbankspalte und data-*-Attribute im HTML. Gzip gleicht einen Teil dieses Unterschieds aus, doch auch komprimiert bleibt die minifizierte Version kleiner. Die Größenanzeige unter dem Ergebnis zeigt den genauen Unterschied für Ihr Dokument.
JSON im Terminal und im Editor bearbeiten
Für Dateien, die Sie regelmäßig verarbeiten, ist ein Kommandozeilenwerkzeug schneller als jede Website. jq . file.json formatiert, jq -c . file.json minifiziert, und python -m json.tool file.json funktioniert überall, wo Python installiert ist. Visual Studio Code formatiert JSON mit Umschalt+Alt+F und validiert es gegen ein Schema, sobald Sie eine Eigenschaft $schema hinzufügen. Diese Seite ist für die übrigen Fälle gedacht: eine aus dem Netzwerk-Tab kopierte Antwort, eine Logzeile, ein Konfigurationsschnipsel aus einem Wiki oder eine schnelle Prüfung auf einem Rechner, auf dem Sie nichts installieren können.
Verwandte Tools auf dieser Website: Der Base64 Encoder und Decoder dekodiert den Payload-Teil eines JWT, also JSON in Base64url-Kodierung. Der UNIX Timestamp Konverter macht aus den createdAt-Zahlen der meisten API-Antworten lesbare Datumsangaben, und der UUID Dekodierer zeigt Ihnen Version und Zeitstempel der Kennungen in Ihren Daten. Weitere Werkzeuge finden Sie unter Entwickler-Tools.
Häufig gestellte Fragen (FAQ)
Wird mein JSON auf einen Server hochgeladen?
Nein. Parsen, Formatieren und Reparieren laufen vollständig in JavaScript in Ihrem Browser. Sobald die Seite geladen ist, können Sie die Netzwerkverbindung trennen, und das Tool funktioniert weiter. Nichts wird protokolliert oder gespeichert.Warum lehnt der Validator Kommentare ab, obwohl mein Editor sie akzeptiert?
Douglas Crockford, der Urheber von JSON, hat Kommentare bewusst aus dem Format entfernt, damit niemand sie für Parser-Direktiven missbraucht. Dateien wietsconfig.json oder .vscode/settings.json sind technisch gesehen JSONC, eine Obermenge, die Editoren unterstützen. Strikte Parser in APIs, Datenbanken und den meisten Programmiersprachen lehnen sie ab. Die Schaltfläche Automatisch reparieren entfernt Kommentare, damit das Ergebnis überall gültig ist.
Kann ich JSON Lines oder mehrere Objekte auf einmal formatieren?
Ein JSON-Dokument enthält genau einen Wert. Wenn Sie mehrere Objekte einfügen, die durch Kommas oder Zeilenumbrüche getrennt sind, bricht der Validator beim ersten zusätzlichen Wert ab. Setzen Sie die Objekte in eckige Klammern, damit ein Array entsteht, und formatieren Sie dann. Die Reparatur erledigt das nicht automatisch, weil sie nicht wissen kann, ob die Eingabe als ein einziges Dokument gedacht war.Wie groß darf das JSON höchstens sein?
Es gibt keine feste Grenze. Dokumente mit einigen Megabyte werden auf einem Laptop in deutlich unter einer Sekunde formatiert. Ab etwa 400 kB wird die Syntaxhervorhebung abgeschaltet, damit die Seite flüssig reagiert. Kopieren und Herunterladen funktionieren aber weiterhin.Verändert das Sortieren der Schlüssel die Daten?
Nein. Objekte sind in JSON per Definition ungeordnet, siehe den Artikel zu JSON in der Wikipedia. Ein Parser liest das sortierte und das ursprüngliche Dokument daher als denselben Wert. Arrays werden nie umsortiert, weil ihre Reihenfolge zu den Daten gehört.Wie maskiere ich JSON (Escaping), um es in einen String einzubetten?
Minifizieren Sie zuerst und maskieren Sie dann jeden Backslash und jedes doppelte Anführungszeichen. Viele Sprachen erledigen das direkt:JSON.stringify(JSON.stringify(obj)) in JavaScript oder json.dumps(json.dumps(obj)) in Python erzeugen einen JSON-String, der den JSON-Text enthält.