JSON-Formatter

JSON formatieren, validieren, minifizieren und sortieren.

Über dieses Tool

Füge JSON ein, um es mit deiner bevorzugten Einrückung schön zu formatieren, für die Übertragung zu minifizieren oder Schlüssel alphabetisch zu sortieren, damit Diffs lesbar werden. Syntaxfehler werden mit Zeile und Spalte gemeldet.

So verwendest du es

  1. Füge dein JSON in das Eingabefeld ein, oder füge es mit ⌘K in die Suche ein und wähle JSON-Formatter.
  2. Wähle 2 Leerzeichen, 4 Leerzeichen, Tabs oder Minifizieren, um alles in eine Zeile zu schreiben.
  3. Aktiviere Schlüssel sortieren, wenn du die Schlüssel alphabetisch willst – so lassen sich zwei Versionen leichter vergleichen.
  4. Kopiere das Ergebnis. Ist das JSON ungültig, zeigt der Fehler die Zeile und Spalte, die du korrigieren musst.

Fragen

Warum ist mein JSON ungültig?
Die üblichen Ursachen sind ein Komma nach dem letzten Element, einfache statt doppelter Anführungszeichen, Schlüssel ohne Anführungszeichen oder Kommentare. JSON erlaubt nichts davon. Die Fehlermeldung zeigt auf die genaue Zeile und Spalte.
Kann es ein Python-Dict oder ein JavaScript-Objekt lesen?
Ja. Werte mit einfachen Anführungszeichen, True, False, None, Schlüssel ohne Anführungszeichen oder abschließende Kommas werden automatisch in gültiges JSON umgewandelt, und die Statuszeile sagt dir, dass das passiert ist.
Kann ich gefahrlos API-Antworten mit personenbezogenen Daten einfügen?
Ja. Das Formatieren passiert in deinem Browser, und nichts wird an einen Server gesendet, daher kannst du Produktionsdaten einfügen, ohne dass sie deinen Rechner verlassen.
Was ist der Unterschied zwischen Formatieren und Minifizieren?
Formatieren fügt Zeilenumbrüche und Einrückungen hinzu, damit Menschen es lesen können. Minifizieren entfernt alle optionalen Leerzeichen, damit die Daten für die Übertragung übers Netzwerk so klein wie möglich sind.
Was passiert mit doppelten Schlüsseln in einem JSON-Objekt?
Der JSON-Standard verbietet doppelte Schlüssel nicht, lässt ihre Bedeutung aber offen. Hier gewinnt, wie bei JSON.parse in jedem Browser, der letzte Wert, also wird {"a": 1, "a": 2} zu {"a": 2} formatiert. Scheint ein Schlüssel nach dem Formatieren zu verschwinden, such in der Eingabe nach einer zweiten Kopie davon.
Kann ich eine große JSON-Datei formatieren?
Ja. Klick auf „Datei öffnen“ oder zieh die Datei in das Feld „Eingabe“. Sie wird lokal gelesen, nie hochgeladen, und Dateien bis 50 MB werden akzeptiert. In sehr großen Dokumenten scrollt das Textfeld langsamer, speichere das Ergebnis also mit „Herunterladen“ als formatted.json, statt es zu kopieren.
Wie formatiere ich JSON Lines oder NDJSON?
JSON Lines enthält einen JSON-Wert pro Zeile, die Datei als Ganzes ist also kein gültiges JSON, und der Formatter meldet einen Fehler dort, wo der zweite Wert beginnt. Formatiere jeweils eine Zeile oder mach aus der Datei ein Array, indem du sie in [ ] einschließt und ans Ende jeder Zeile außer der letzten ein Komma setzt.

Was ist ein JSON-Formatter und -Validator?

Ein JSON-Formatter nimmt kompaktes oder unordentliches JSON und gibt es mit einheitlicher Einrückung und einem Schlüssel pro Zeile neu aus, sodass verschachtelte Daten lesbar werden. Ein JSON-Validator prüft, ob der Text der JSON-Grammatik folgt: Schlüssel und Strings in doppelten Anführungszeichen, keine abschließenden Kommas, keine Kommentare und als Literale nur true, false und null. Dieses Tool erledigt beides in einem Durchgang. Gültige Eingaben kommen sauber formatiert zurück, bei ungültigen siehst du die Meldung des Parsers mit Zeile und Spalte.

Beim Formatieren ändern sich die Daten nie. Schlüssel, Werte und die Reihenfolge in Arrays bleiben genau gleich, nur der Leerraum ändert sich. Eine Grenze solltest du kennen: JSON-Zahlen werden als JavaScript-Doubles gelesen, deshalb verlieren Ganzzahlen über 9007199254740991 an Genauigkeit. Eine ID wie 12345678901234567890 kommt als 12345678901234567000 zurück. Wenn eine API so große IDs liefert, lass sie dir als Strings geben – viele APIs machen das bei 64-Bit-IDs ohnehin schon.

„Unexpected token“ in JSON beheben

„Unexpected token“ bedeutet, dass der JSON-Parser auf ein Zeichen gestoßen ist, das an dieser Stelle nicht stehen darf. Lies Zeile und Spalte in der Fehlermeldung und sieh dir den Text direkt davor an. Die üblichen Verdächtigen sind ein abschließendes Komma wie in [1, 2, ], ein Schlüssel ohne Anführungszeichen, ein String in einfachen Anführungszeichen, ein //-Kommentar aus einer Konfigurationsdatei oder ein Wert wie NaN oder Infinity, den JavaScript ausgibt, JSON aber nicht erlaubt.

Der Fehler „Unexpected token < in JSON at position 0“ hat eine andere Ursache: Der Text ist eine HTML-Seite, meist eine Fehlerseite oder eine Weiterleitung zum Login, nicht die erwartete API-Antwort. Prüfe vor dem Parsen den HTTP-Status und den Content-Type-Header. Ist die Eingabe ein Python-Dict oder ein JavaScript-Objektliteral, repariert der JSON-Formatter einfache Anführungszeichen, True, False, None, Schlüssel ohne Anführungszeichen und abschließende Kommas und listet jede Korrektur in der Statuszeile auf.

JSON-Schlüssel sortieren? Best Practices für Einrückung und Sortierung

Die Reihenfolge der Schlüssel hat in einem JSON-Objekt keine Bedeutung, daher ist alphabetisches Sortieren unbedenklich und macht zwei Versionen leicht vergleichbar. „Schlüssel sortieren“ arbeitet rekursiv: Auch verschachtelte Objekte werden sortiert, Arrays behalten dagegen ihre Reihenfolge, weil dort die Position zählt. Sortiere beide Versionen, füge sie dann in den Textvergleich ein, und es erscheinen nur echte Wertänderungen statt Schlüssel, die bloß an eine andere Stelle gerutscht sind.

Bei der JSON-Einrückung sind 2 Leerzeichen in JavaScript-Projekten und API-Dokumentationen am verbreitetsten, 4 Leerzeichen entsprechen der Gewohnheit von json.dumps(indent=4) in Python, und mit Tabs wählt jeder Leser seine eigene Breite. Minifiziertes JSON gehört in Netzwerk-Payloads, Umgebungsvariablen und Logzeilen, wo ein Datensatz pro Zeile zählt. Egal, wofür du dich entscheidest: Bleib innerhalb eines Repositorys konsistent, damit Umformatierungen das Code-Review nicht zumüllen.

Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden