Formatiere, minifiziere und validiere JSON sofort — mit präziser Fehlerangabe.
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenformat, das von Menschen lesbar und maschinell gut zu parsen ist. Es hat sich als Standard-Datenformat im Web (REST-APIs, Config-Dateien, NoSQL-Datenbanken) durchgesetzt.
Dieses Tool hilft beim Aufräumen unleserlicher JSON-Strings (z. B. aus API-Antworten), beim Minifizieren für Produktion und beim Aufspüren von Syntaxfehlern mit exakter Zeilen-/Spalten-Angabe.
JSON ist streng spezifiziert (RFC 8259). Häufige Stolperfallen, die zu Parser-Fehlern führen:
JSON ist seit Dezember 2017 in RFC 8259 und parallel in ECMA-404 spezifiziert. Der Standard erlaubt sechs Wert-Typen — string, number, true/false, null, object, array — und schreibt UTF-8 als Default-Encoding für den Datenaustausch zwischen Systemen vor. Whitespace zwischen Tokens ist für die Maschine irrelevant, für den Menschen aber entscheidend: eine API-Antwort wie {"a":1,"b":[2,3,{"c":"d"}]} ist schwer zu lesen, während die formatierte Variante mit zwei Spaces pro Ebene Struktur, Zugehörigkeit und Tiefe sofort sichtbar macht.
Formatieren (Beautify) fügt Zeilenumbrüche und Einrückung ein, ohne die Semantik zu verändern. Übliche Einrückungen sind 2 oder 4 Leerzeichen oder Tabs — die meisten Style Guides (Airbnb, Google, Prettier-Default) bevorzugen 2 Spaces. Minify ist die umgekehrte Operation: jeglicher nicht-signifikanter Whitespace wird entfernt, sodass die Datei um typischerweise 20–40 % schrumpft. Das spart Bandbreite bei API-Antworten und ist Pflicht für In-Body-Payloads in Lambda-Edge-Functions oder Service-Workers, wo jedes Byte zählt.
Strikt nach RFC 8259 sind Kommentare verboten, einfache Anführungszeichen unzulässig und trailing commas illegal. Browser und Node.js (über JSON.parse) sind in diesem Punkt unerbittlich. Toleranter sind Varianten wie JSON5, HJSON oder JSONC (VSCode-Konfig). Unser Formatter hält sich strikt an die Spezifikation; wer JSONC oder JSON5 hat, lässt erst durch einen passenden Parser laufen, bevor er hier validiert.
Fünf Schritte vom rohen Blob zum sauber strukturierten JSON:
curl-Output, einer API-Response, einer .json-Datei oder einer DevTools-Konsolenausgabe.Formatieren klicken.Formatieren für Pretty-Print, Minify für die kompakte Variante oder Validieren für reine Syntaxprüfung. Bei Fehlern erscheint die Zeile/Spalte im Fehlerblock..har-Datei. Tipp: Den URL-Parameter ?data= teilt automatisch das Eingabe-JSON — praktisch für Kollegen-Links.Diese typischen Ein- und Ausgaben kommen jeden Tag vor:
{"a":1,"b":2} wird zu mehrzeilig {
"a": 1,
"b": 2
}.{"user":{"name":"Anna","roles":["editor","author"]}} wird strukturiert mit drei Ebenen — sofort erkennbar, dass roles ein Array innerhalb von user ist.{"a":1,} meldet der Validator "Unexpected token } in JSON at position 7" — das trailing comma ist verboten.{'a':1} ist kein gültiges JSON. JavaScript-Object-Literals sehen so aus, JSON verlangt aber doppelte Anführungszeichen — Fehler zeigt "Expected property name or '}'".Auch ein "einfacher" Formatter hat ernstzunehmende Edge Cases. Erstens: Zahlenpräzision. JavaScript-JSON.parse wandelt Zahlen in IEEE-754-Doubles. Werte über 2^53 − 1 verlieren Stellen — 10765432109876543 kann zu 10765432109876544 werden. Wenn Sie Snowflake- oder Twitter-IDs verarbeiten, übertragen Sie diese als String. Zweitens: Strict-Mode-Konflikte. Trailing commas, Kommentare, einfache Anführungszeichen oder unquotierte Keys sind in RFC 8259 verboten — Browser parsen sie nicht. Für solche Inputs nutzen Sie JSON5 oder bereinigen vorher. Drittens: Unicode-Escaping. JSON.stringify ohne Replacer schreibt Nicht-ASCII direkt durch (UTF-8). Wer mit Legacy-Systemen arbeitet, braucht ggf. \uXXXX-Escaping — das ist gültig, aber nicht Default unseres Tools. Viertens und sicherheitskritisch: Logging von JSON mit Secrets. Beim Pretty-Print landen Bearer-Tokens und API-Keys gut sichtbar in Logs, Screenshots oder geteilten URLs. Achten Sie auf den Inhalt, bevor Sie kopieren oder verlinken. Fünftens: Prototype Pollution. JSON.parse selbst ist sicher, aber das nachgelagerte Object.assign(config, parsed) kann mit __proto__ oder constructor als Key den globalen Prototyp angreifen — filtern Sie diese Schlüssel oder nutzen Sie Map.
{"a":1,} ist illegal, obwohl viele Editoren das tolerieren würden. Entfernen Sie das letzte Komma oder nutzen Sie ein JSON5-Parser. Im Build sollte ESLint oder Prettier den Fehler automatisch fangen.// und /* */), trailing commas, einfache Anführungszeichen, unquotierte Keys und Hex-Zahlen erlaubt. Es ist menschenfreundlicher für Configs, aber nicht von JSON.parse verstanden. Babel, Webpack, ESLint nutzen JSON5 für ihre Configs."_comment": "…", der von Konsumenten ignoriert wird. Für Configs ist JSONC inzwischen Industriestandard.?data=-URL-Parameter bleibt lokal — er wird nur in der URL gespeichert, nicht an den Server gesendet.