mygems

JSON formatieren, damit du es lesen kannst (Anleitung 2026)

Ein Befehl macht aus einer Zeile mit 40.000 Zeichen lesbares JSON. So geht es im Terminal, Editor, Browser und am Handy, ohne es in eine Website einzufügen.

Von mygems ·

JSON zu formatieren heißt, die Zeilenumbrüche und Einrückungen einzufügen, auf die die Maschine verzichtet hat, damit aus einer Zeile mit 40.000 Zeichen etwas mit erkennbarer Form wird. Jeder Editor und die meisten Terminals schaffen das mit einem Befehl. Zu entscheiden bleibt nur, wie weit du einrückst und ob du die Daten dafür in eine Website einfügst.

Die schnelle Antwort

  • Im Terminal: jq . file.json oder python3 -m json.tool file.json.
  • In VS Code: Datei öffnen und Shift+Alt+F drücken (Shift+Option+F auf dem Mac).
  • Im Browser: die .json-URL in Firefox öffnen, der einen JSON-Viewer eingebaut hat, und auf Pretty Print klicken.
  • Am Handy: eine JSON-App mit Beautify-Befehl, statt den Text in eine Website einzufügen.
  • Es lässt sich gar nicht formatieren: Dann ist es noch kein gültiges JSON. Repariere das zuerst; die Fehlermeldung des Formatierers sagt dir, wo.

Was Formatieren ändert und was nicht

Pretty-Printing fügt nur Leerraum zwischen Tokens hinzu oder entfernt ihn: Leerzeichen, Tabs und Zeilenumbrüche außerhalb von Strings. Ein korrekter Formatierer fasst die Werte nie an. Diese beiden Dokumente sind also dasselbe:

{"id":7,"tags":["a","b"],"owner":{"name":"Ana"}}
{
  "id": 7,
  "tags": [
    "a",
    "b"
  ],
  "owner": {
    "name": "Ana"
  }
}

Minifizieren ist die Gegenrichtung: jedes optionale Leerzeichen und jeden Zeilenumbruch entfernen. So schickst du Daten übers Netz oder fügst sie in ein Konfigurationsfeld ein, das eine einzige Zeile will. Keine der beiden Richtungen ändert, was die Daten bedeuten. Deshalb ist es sicher, eine Datei umzuformatieren, die du nicht selbst geschrieben hast.

Zwei Operationen stehen in den meisten Tools neben dem Formatieren und sind Änderungen, auch wenn harmlose: Schlüssel sortieren, was jedes Objekt alphabetisch umordnet, und Escapen, was das ganze Dokument in einen einzigen String verwandelt. Mach sie absichtlich, nicht als Nebeneffekt.

Im Terminal

jq ist das Werkzeug, das du installiert haben solltest:

jq . data.json                 # pretty, 2-space indent
jq --indent 4 . data.json      # 4 spaces
jq --tab . data.json           # tabs
jq -c . data.json              # minified, one line
jq -S . data.json              # keys sorted A–Z

Um eine Datei direkt zu überschreiben, schreibst du in eine temporäre Datei und verschiebst sie zurück. jq . data.json > data.json leert die Datei, bevor jq sie liest.

jq . data.json > tmp.json && mv tmp.json data.json

Python bringt einen Formatierer mit, er funktioniert also auf jedem Rechner mit Python 3:

python3 -m json.tool data.json
python3 -m json.tool --indent 4 --sort-keys data.json
python3 -m json.tool --compact data.json

Ein Unterschied, der bei echten Daten zählt: json.tool liest Zahlen als Python-Floats, sofern sie keine Ganzzahlen sind, aus 1.10 wird also 1.1. jq 1.7 und neuer behalten Zahlenliterale so, wie sie geschrieben wurden. Enthält die Datei Preise, Versionsnummern oder IDs mit führenden Ziffern, die wichtig sind, prüfe die Ausgabe.

Im Editor

VS Code: Shift+Alt+F formatiert das ganze Dokument, oder du nutzt Format Selection in der Befehlspalette, um nur einen Teil zu formatieren. Setze "editor.formatOnSave": true für [json]-Dateien, wenn du sie oft bearbeitest. Die Einrückung folgt der Tab-Größe des Editors.

Sublime Text, Notepad++, JetBrains-IDEs formatieren alle JSON, entweder eingebaut (JetBrains: Code → Reformat Code) oder mit einem Plugin, das du in einer Zeile installierst (Notepad++: JSON Viewer oder JSTool).

Prettier ist das richtige Werkzeug, wenn das JSON eines ganzen Projekts einheitlich aussehen soll: npx prettier --write "**/*.json".

Im Browser

Firefox formatiert jede JSON-Antwort automatisch, mit einem ausklappbaren Tab JSON, einem Tab Raw Data und einem Button Pretty Print. Schneller kannst du eine API-Antwort nicht lesen, ohne etwas zu installieren.

Chrome und Edge zeigen in neueren Versionen über dem rohen JSON ein Kontrollkästchen Pretty-print. Alles darüber hinaus (Einklappen, Suche nach Schlüsseln) braucht eine Erweiterung.

Die Frage mit den Online-Formatierern

Suchst du nach diesem Thema, besteht die erste Seite aus Websites mit einem großen Textfeld. Die funktionieren. Die Frage ist, was du da hineinfügst.

Eine API-Antwort mit Zugriffstoken, eine Konfigurationsdatei mit Datenbankpasswort, ein Kundenexport: All das wird routinemäßig in Formatierer eingefügt, und von der Seite aus kannst du nicht prüfen, ob der Text in deinem Browser bleibt oder an einen Server geschickt und protokolliert wird. Manche Seiten wurden außerdem dabei erwischt, „geteilte“ Dokumente unter erratbaren URLs zu speichern.

Die Regel ist einfach. Würdest du es nicht in einen öffentlichen Chat einfügen, formatiere es lokal. Jede der obigen Optionen läuft auf deinem eigenen Rechner.

Die Einrückung wählen

  • 2 Leerzeichen sind der De-facto-Standard: jq, Prettier, die meisten JavaScript-Werkzeuge, die meisten API-Dokus.
  • 4 Leerzeichen lesen sich bei tief verschachtelten Dokumenten auf einem breiten Bildschirm besser und sind die Konvention in Python.
  • Tabs lassen jeden Leser seine eigene Breite wählen und machen Dateien etwas kleiner.

Keine davon ist falsch. Wähle eine pro Projekt und lass einen Formatierer sie durchsetzen, damit ein Diff Änderungen an den Daten zeigt statt Änderungen am Leerraum.

Auf iPhone und iPad

Am Handy ist JSON am schlechtesten lesbar, weil iOS eine .json-Datei als reinen Text ohne Zeilenumbrüche zeigt. Die Wege, eine zu öffnen, stehen hier; das Formatieren ist der Schritt danach.

In Smart Json formatiert Beautify das Dokument mit einheitlicher Einrückung, Minify schrumpft es auf eine Zeile, und Sort keys A–Z ordnet jedes Objekt neu. Rückgängig funktioniert bei allen dreien. Lässt sich der Text nicht parsen, benennt ein Banner das Problem mit Zeile und Spalte, statt etwas halb Gültiges zu formatieren, und Fix repariert die üblichen Verdächtigen: Kommentare, nachgestellte Kommas, einfache Anführungszeichen und Schlüssel ohne Anführungszeichen.

Das Aktionsmenü des Dokuments über einem minifizierten JSON-Dokument, mit Beautify, Minify, Sort keys A–Z und Auto-fix syntax unter Format
Formatieren: Beautify, Minify, Sort keys
Dasselbe Bestelldokument nach Beautify, eingerückt über 38 nummerierte Zeilen, mit Valid JSON, depth 6 in der Statusleiste
Das einzeilige Dokument, mit Beautify formatiert
JSON Editor: Smart JsoniPhone & iPad

Beautify, Minify und Sort keys auf iPhone und iPad, offline, mit einer verständlichen Fehlermeldung bei kaputtem JSON. Nichts wird in eine Website eingefügt.

Was es kann

Wenn das Formatieren scheitert

Ein Formatierer lehnt alles ab, was kein gültiges JSON ist, und seine Fehlermeldung ist meist eine Position: line 1, column 3,912. Bei einem minifizierten Dokument ist das eine Zeile, die Spalte ist also der Hinweis. Die üblichen Ursachen sind ein nachgestelltes Komma, einfache Anführungszeichen, ein Kommentar oder ein Wert ohne Anführungszeichen. Jeden häufigen Fehler erklären wir hier, samt der Bedeutung jeder Meldung.

Fragen

Wie formatiere ich JSON lesbar (Pretty Print)?
Im Terminal führst du jq . file.json oder python3 -m json.tool file.json aus. In VS Code drückst du Shift+Alt+F (Shift+Option+F auf dem Mac). Firefox formatiert JSON auch automatisch, wenn du eine .json-URL öffnest.
Ändert das Formatieren von JSON die Daten?
Nein. Pretty-Printing und Minifizieren ändern nur den Leerraum zwischen Tokens, nie die Werte. Schlüssel sortieren und Escapen sind andere Operationen: Sie schreiben das Dokument um, auch wenn das Sortieren nichts an seiner Bedeutung ändert.
Ist ein Online-JSON-Formatierer sicher?
Bei öffentlichen Daten ja. Bei allem mit Tokens, Passwörtern oder persönlichen Daten nein: Du kannst nicht prüfen, ob die Seite behält, was du einfügst. Formatiere stattdessen lokal mit jq, Python, deinem Editor oder einer Offline-App.
Wie minifiziere ich JSON?
Führe jq -c . file.json oder python3 -m json.tool --compact file.json aus. Die meisten JSON-Editoren haben auch einen Minify-Befehl. Beim Minifizieren fallen alle optionalen Leerzeichen und Zeilenumbrüche weg.
Warum lässt sich mein JSON nicht formatieren?
Weil es kein gültiges JSON ist. Formatierer raten nicht. Die Fehlermeldung nennt Zeile und Spalte; die üblichen Ursachen sind ein nachgestelltes Komma, einfache Anführungszeichen, ein Kommentar oder ein Schlüssel ohne Anführungszeichen.
Sollte JSON mit 2 oder 4 Leerzeichen eingerückt werden?
Beides geht. Zwei Leerzeichen sind der häufigste Standard in JavaScript-Werkzeugen und API-Dokumentation, vier sind in Python-Projekten üblich. Wichtig ist, konsequent eines zu nutzen, durchgesetzt von einem Formatierer.

mygems — Entwickelt Smart Json, einen JSON-Editor für iPhone und iPad, der ein Dokument als Text, Baum und Graph zeigt.