Wie Sie JSON online formatieren und validieren
Wenn Sie mit APIs, Konfigurationsdateien oder jeder Art strukturierter Daten arbeiten, haben Sie regelmäßig mit JSON zu tun. Und wenn Sie jemals auf eine Wand minifizierten JSON gestarrt haben, um eine fehlende Klammer zu finden, wissen Sie, warum Formatierung wichtig ist. Ein browserbasierter Formatierer erledigt die gesamte Arbeit lokal, ohne Ihre Daten auf einen Server hochzuladen.
Was JSON-Formatierung macht
Rohes JSON aus einer API-Antwort oder einer minifizierten Datei sieht so aus:
{"users":[{"name":"Alice","age":30,"roles":["admin","editor"]},{"name":"Bob","age":25,"roles":["viewer"]}]}
Ein Formatierer verwandelt es in etwas Lesbares:
{
"users": [
{
"name": "Alice",
"age": 30,
"roles": ["admin", "editor"]
},
{
"name": "Bob",
"age": 25,
"roles": ["viewer"]
}
]
}
Dieselben Daten, aber jetzt können Sie sie wirklich lesen, Fehler erkennen und die Struktur verstehen.
So formatieren Sie JSON online
- Fügen Sie Ihr JSON ein in das Eingabefeld. Der Formatierer wird sofort Syntaxfehler erkennen und die Struktur validieren.
- Wählen Sie Ihre Einrückung: Wählen Sie 2 oder 4 Leerzeichen oder klicken Sie auf Minify, um das JSON in eine einzige Zeile zu komprimieren.
- Kopieren Sie das Ergebnis: Die formatierte Ausgabe enthält farbcodierte Syntax-Hervorhebung. Kopieren Sie es, um es in Ihrem Code, Ihrer Konfigurationsdatei oder Ihrer Dokumentation zu verwenden.
Eine kurze Geschichte von JSON
JSON (JavaScript Object Notation) wurde 2001 von Douglas Crockford spezifiziert, 2006 formal in RFC 4627 dokumentiert und 2013 als ECMA-404 und 2017 als ISO/IEC 21778 standardisiert. Crockford hat JSON nicht erfunden: Er extrahierte es aus einer Teilmenge der JavaScript-Objektliteral-Syntax, die bereits in Verwendung war, und gab ihm einen Namen plus eine einseitige Spezifikation auf json.org.
JSON verdrängte schnell XML für Web-APIs, weil es dramatisch einfacher ist. Eine XML-Antwort ist mit Öffnungs-/Schließtags ausführlich; das entsprechende JSON ist halb so groß. Browser können JSON nativ parsen (JSON.parse, JSON.stringify seit ECMAScript 5 im Jahr 2009) ohne XML-Parser erforderlich.
Bis 2015 sprach jede große API der Welt JSON: REST-APIs, GraphQL-Abfragen, WebSocket-Nachrichten, Konfigurationsdateien (package.json, tsconfig.json, .vscode/settings.json) und sogar Datenbanken (PostgreSQL JSONB, MongoDB BSON, das JSON-ähnlich ist). Es wurde zur Lingua Franca strukturierter Daten im Web.
Die Einfachheit von JSON ist auch seine Einschränkung: keine Kommentare, keine nachgestellten Kommas, kein Datumstyp, keine binäre Unterstützung. Mehrere JSON-Varianten entstanden, um diese Lücken zu schließen (siehe «Alternative JSON-ähnliche Formate» unten).
Häufige JSON-Fehler und wie man sie erkennt
Die meisten JSON-Fehler laufen auf einige häufige Fehler hinaus:
- Fehlende oder zusätzliche Kommas: Ein Komma nach dem letzten Element in einem Array oder Objekt ist in JSON ungültig (im Gegensatz zu JavaScript)
- Nicht zitierte Schlüssel: JSON erfordert doppelte Anführungszeichen um alle Schlüssel:
"name"nichtname - Einfache Anführungszeichen: JSON akzeptiert nur doppelte Anführungszeichen:
"value"nicht'value' - Nachgestellte Kommas:
{"a": 1,}ist ungültig; entfernen Sie das Komma nach dem letzten Eintrag - Kommentare: JSON unterstützt keine
// Zeileoder/* Block */Kommentare; die meisten Parser lehnen sie ab - Undefined / NaN / Infinity: JSON erlaubt nur Zahlen, Strings, Boolesche Werte, null, Arrays und Objekte. JavaScript-Werte wie
undefined,NaNoderInfinitysind nicht gültig - Funktionswerte: Eine Funktionsreferenz kann nicht in JSON erscheinen
- Hexadezimal- oder Oktalzahlen: Nur Dezimalzahlen sind gültig (
0xFFund0o17sind nicht) - Führende Nullen:
01ist in JSON ungültig; verwenden Sie1 - Hexadezimale Escapes: Nur
\uUnicode-Escapes sind in Strings erlaubt, nicht\xoder\0 - Doppelte Schlüssel: technisch gültig laut Spezifikation, aber die meisten Parser verwenden stillschweigend den letzten Wert; verlassen Sie sich auf eigenes Risiko darauf
- UTF-8 BOM: Eine Byte-Order-Mark am Anfang einer Datei ist kein gültiges JSON und bricht strenge Parser
- Nachgestellte Leerzeichen oder Inhalte: Jeder Text nach dem schließenden
]oder}macht das Dokument ungültig
Ein guter Formatierer hebt genau hervor, wo der Fehler liegt, sodass Sie ihn sofort beheben können, anstatt zu raten.
JSON-Datentypen
JSON hat genau 6 Datentypen:
| Typ | Beispiel | Notizen |
|---|---|---|
| String | "hello" | Immer doppelte Anführungszeichen, unterstützt \n, \t, \\, \", \uXXXX |
| Zahl | 42, 3.14, -1e10 | Keine NaN oder Infinity, keine führenden Nullen |
| Boolesch | true, false | Nur Kleinbuchstaben |
| null | null | Nur Kleinbuchstaben |
| Array | [1, 2, 3] | Geordnet, beliebige Typen, kommagetrennt |
| Objekt | {"key": "value"} | Schlüssel müssen zitierte Strings sein, kommagetrennt |
Bemerkenswerterweise fehlen: Daten (verwenden Sie ISO 8601 Strings), Binärdaten (verwenden Sie Base64 Strings), Kommentare (verwenden Sie ein separates Dokumentationsfeld) und bigint (JSON-Zahlen sind doppelte Präzision; Werte >= 2^53 verlieren Präzision).
Wann formatieren vs minifizieren
Formatieren (pretty-print), wenn Sie:
- Daten lesen und verstehen
- API-Antworten debuggen
- Konfigurationsdateien bearbeiten
- JSON mit Kollegen teilen
- In die Versionskontrolle committen (sauberere Diffs)
Minifizieren, wenn Sie:
- Daten über ein Netzwerk senden (kleinere Nutzlast = schnellere Übertragung)
- JSON in einer Datenbank oder einem Protokoll speichern, wo Lesbarkeit nicht wichtig ist
- JSON in einen URL-Parameter oder ein Formularfeld einbetten
- Kompakte API-Antworten generieren
Der Größenunterschied ist erheblich: Ein typisches 50 KB pretty-printed JSON minifiziert auf etwa 30 KB. Für hochfrequente APIs sparen minifizierte Antworten Bandbreite. Für von Menschen bearbeitete Dateien ist formatiert unerlässlich.
Alternative JSON-ähnliche Formate
Wenn die Strenge von JSON ein Problem ist, lockern mehrere Varianten die Regeln:
| Format | Fügt zu JSON hinzu | Beste Verwendung |
|---|---|---|
| JSON5 | Kommentare, nachgestellte Kommas, einfache Anführungszeichen, nicht zitierte Schlüssel | Konfigurationsdateien, in denen Menschen bearbeiten |
| JSONC | Nur Kommentare (// und /* */) | VS Code-Einstellungen, tsconfig.json |
| HJSON | Kommentare, nicht zitierte Strings, mehrzeilige Strings | Menschenfreundliche Konfigurationen |
| JSON Lines (NDJSON) | Ein JSON-Objekt pro Zeile, kein umschließendes Array | Logdateien, Streaming |
| YAML | Auf Einrückung basierend, Kommentare, Anker, Referenzen | Kubernetes, GitHub Actions |
| TOML | INI-ähnliche Syntax, Daten, Kommentare | Cargo.toml, pyproject.toml |
| BSON | Binäres JSON mit zusätzlichen Typen (Date, ObjectId, Binary) | MongoDB interne Speicherung |
| CBOR (RFC 8949) | Binärformat optimiert für Größe | APIs für eingeschränkte Geräte |
| MessagePack | Binäres JSON-ähnliches, kompakt | Interne API-Serialisierung |
Für Datenaustausch (API-Antworten, Konfiguration) bleiben Sie bei striktem JSON. Für menschenbearbeitete Konfiguration sind JSON5 oder JSONC freundlicher. Für Datenstreaming ist NDJSON der De-facto-Standard.
Häufige Stolperfallen
- Zahlen verlieren Präzision: JSON-Zahlen sind IEEE 754 doubles. Ganzzahlen größer als 2^53 (9.007.199.254.740.992) verlieren Präzision. Übertragen Sie große IDs als Strings (
"id": "12345678901234567890"). - Unicode-Escapes von Editoren verstümmelt: Einige Editoren wandeln Zeichen beim Speichern automatisch um, was dazu führen kann, dass sich Parser unerwartet verhalten. Verwenden Sie UTF-8 durchgehend.
- Pretty-print Daten falsch: Daten als ISO 8601 Strings (
"2026-05-20T13:00:00Z") sind Standard. Vermeiden Sie Unix-Zeitstempel als Strings; sie sehen wie Zahlen aus, sind aber normalerweise als Daten gedacht. - Leerzeichen in Schlüsseln:
{"first name": "..."}ist gültiges JSON, bricht aber viele ORMs und Codegeneratoren, die identifier-sichere Schlüssel erwarten. - Leere Werte vs fehlende Schlüssel:
{"a": null}und{}(überhaupt keina) sind verschiedene Dinge. Wählen Sie eine Konvention und dokumentieren Sie sie. - Bigint-Inkompatibilität: PostgreSQL bigint-Spalten, die als JSON-Zahlen serialisiert werden, können Präzision verlieren. Verwenden Sie Strings für IDs über 2^53.
- Nachgestellte Newline: Einige Tools fügen eine nachgestellte Newline nach der schließenden Klammer hinzu; einige strenge Parser lehnen sie ab. JSON-stringify produziert keine nachgestellte Newline.
- Kodierungsfehlanpassung: JSON-Spezifikation erfordert UTF-8 (oder UTF-16/UTF-32 mit BOM). Latin-1 mit Nicht-ASCII-Zeichen schlägt fehl. Immer als UTF-8 serialisieren.
- Stringifizierte JSON in JSON: Verschachtelte Escape-Zeichen werden schnell unhandlich. Verschachteln Sie das Objekt direkt oder wählen Sie eine base64-kodierte JSON-Konvention.
- Kommentare in der Quelldatei: Wenn Sie JSONC oder JSON5 in ein System einchecken, das strenges JSON erwartet, schlägt das Parsen fehl. Konvertieren Sie in Ihrem Build-Schritt zu striktem JSON.
Tipps für die Arbeit mit JSON
- Vor dem Senden validieren: Wenn Sie eine API-Anfrage manuell erstellen, fügen Sie Ihr JSON zuerst in einen Validator ein. Ein einziges falsch platziertes Komma kann verwirrende Fehler auf der Serverseite verursachen.
- Verwenden Sie 2-Leerzeichen-Einrückung für tief verschachtelte Daten. Es hält Zeilen kürzer und die Struktur leichter zu scannen.
- Markieren Sie das Werkzeug: Wenn Sie regelmäßig mit JSON arbeiten, spart ein einklickfähiger Formatierer Zeit im Vergleich zur Suche nach einem jedes Mal.
- Verwenden Sie jq für Kommandozeilen-Arbeit:
jq(und die jq-Sprachalternativen wiegron,dasel,yq) sind unverzichtbar für das Filtern und Transformieren von JSON in der Kommandozeile. - Verwenden Sie ein JSON-Schema zur Validierung: Für wichtige Formate (API-Verträge, Konfigurationsdateien) definieren Sie ein JSON-Schema und validieren Sie dagegen. Tools wie ajv (JavaScript), python-jsonschema oder die in VS Code integrierte Schema-Validierung verhindern Formfehler.
- Verwenden Sie Postman oder Insomnia für API-Anfragen: Diese Tools haben eingebaute JSON-Formatierer und -Validatoren, Syntax-Hervorhebung und Anfrageverlauf.
- Lassen Sie JSON durch Prettier in Ihrer Codebasis laufen: Prettier formatiert JSON konsistent; integrieren Sie es als Pre-Commit-Hook, damit Formatierung nie ein Code-Review-Anliegen ist.
- Für Diffs zuerst Schlüssel sortieren: JSON-Objektschlüssel sind ungeordnet. Ein Diff von
{"a":1,"b":2}vs{"b":2,"a":1}zeigt, dass sich alles geändert hat, es sei denn, Sie sortieren zuerst die Schlüssel. Verwenden Siejq -Soder ähnliches.
Datenschutz und vertrauliche JSON
Der JSON-Formatierer läuft vollständig in Ihrem Browser. Das JSON, das Sie einfügen, die Zwischenverarbeitung und die formatierte Ausgabe bleiben alle auf Ihrem Gerät. Nichts wird auf einen Server hochgeladen, protokolliert oder mit irgendjemandem geteilt.
Dies ist wichtig, weil JSON oft extrem sensible Daten enthält: API-Antworten mit Kundenakten und E-Mail-Adressen, Authentifizierungstoken und Sitzungsdaten, interne API-Schemata, die die Produktarchitektur enthüllen, Konfigurationsdateien mit Datenbankpasswörtern, Finanzdaten aus Buchhaltungs-APIs, medizinische Aufzeichnungen aus FHIR-APIs, interne Unternehmensstruktur aus HR-APIs, Debug-Payloads mit Stacktraces, die die Infrastruktur offenlegen. Cloud-JSON-Formatierer protokollieren jedes Einfügen in ihren Anfrageprotokollen, behalten sie manchmal zur «Service-Verbesserung» und waren an echten Vorfällen beteiligt, bei denen eingefügte API-Antworten Kundendaten und API-Schlüssel preisgaben. Ein browserbasierter Formatierer hat null Exposition: Das JSON verlässt niemals Ihren Computer.
Browserbasierte Formatierung funktioniert auch offline, sobald die Seite geladen ist, nützlich für die Formatierung von JSON in Flugzeugen, in sicheren Umgebungen ohne Internetzugang oder überall dort, wo Sie API-Daten (besonders mit eingebetteten Anmeldeinformationen) nicht in einen Drittanbieterdienst einfügen können oder sollten.
Häufig gestellte Fragen
Kann der Formatter große JSON-Dateien verarbeiten?
Ja. Da das Tool in Ihrem Browser läuft, kann es Dateien mit Zehntausenden von Zeilen verarbeiten. Die Performance hängt von Ihrem Gerät ab, aber die meisten modernen Browser bewältigen großes JSON ohne Probleme.
Funktioniert das offline?
Ja. Sobald die Seite geladen ist, funktioniert das Tool vollständig in Ihrem Browser ohne Internetverbindung. Die gesamte Verarbeitung erfolgt lokal in JavaScript.
Was ist der Unterschied zwischen Formatieren und Validieren?
Das Formatieren fügt korrekte Einrückung und Zeilenumbrüche hinzu, um JSON lesbar zu machen. Das Validieren prüft, ob die JSON-Struktur korrekt ist, passende Klammern, korrekte Anführungszeichen, gültige Datentypen. Die meisten Formatter erledigen beides gleichzeitig.
Kann ich das auf meinem Telefon nutzen?
Ja. Das Tool funktioniert auf jedem Gerät mit einem modernen Browser, einschließlich Telefonen und Tablets.