JSON Formatter & Validator

Formatiere, minifiziere und validiere JSON sofort — mit präziser Fehlerangabe.

{{ __t('indent_label') }}
{{ __t('bytes') }} {{ __t('lines') }} {{ __t('keys') }} {{ __t('saved') }}

Was ist JSON?

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.

Funktionen

  • Formatieren — Pretty-Print mit 2 / 4 Spaces oder Tabs
  • Minifizieren — alle Whitespaces entfernen für kleinste Größe
  • Validieren — Syntaxprüfung mit Zeilen- und Spaltenangabe bei Fehlern
  • 100 % lokal — kein Upload, kein Server, keine Logs

JSON-Syntax in Kürze

JSON ist streng spezifiziert (RFC 8259). Häufige Stolperfallen, die zu Parser-Fehlern führen:

  • Strings müssen mit doppelten Anführungszeichen umschlossen sein, nicht mit einfachen
  • Object-Keys müssen ebenfalls in doppelten Anführungszeichen stehen
  • Keine trailing commas erlaubt — kein Komma nach dem letzten Element
  • Kommentare sind nicht Teil der JSON-Spezifikation

JSON formatieren: Spezifikation, Pretty-Print und Minify

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.

So nutzen Sie den JSON Formatter

Fünf Schritte vom rohen Blob zum sauber strukturierten JSON:

  1. Fügen Sie Ihr JSON ins linke Feld ein — von curl-Output, einer API-Response, einer .json-Datei oder einer DevTools-Konsolenausgabe.
  2. Wählen Sie die Einrückung: 2 Spaces für die meisten Style Guides, 4 für PEP-8-ähnliche Konventionen, Tab für klassische C/Java-Codebases. Die Auswahl wirkt sofort, sobald Sie Formatieren klicken.
  3. Klicken Sie 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.
  4. Lesen Sie die Statistik unten: Bytes, Zeilen, Anzahl Keys und beim Minify den Prozentsatz der Einsparung. So sehen Sie sofort, was Sie an Bandbreite oder Speicher gewinnen.
  5. Kopieren Sie die Ausgabe in Ihre Codebase, Ihren Postman-Request oder eine .har-Datei. Tipp: Den URL-Parameter ?data= teilt automatisch das Eingabe-JSON — praktisch für Kollegen-Links.

Praxisbeispiele

Diese typischen Ein- und Ausgaben kommen jeden Tag vor:

  • Formatieren mit 2 Spaces: {"a":1,"b":2} wird zu mehrzeilig {
    "a": 1,
    "b": 2
    }
    .
  • Minify einer 100-KB-API-Response: typische Reduktion auf 60–80 KB, weil Indentation und Zeilenumbrüche entfernt werden. Über das Jahr summiert sich das messbar auf der Server-Egress-Rechnung.
  • Verschachteltes Objekt: {"user":{"name":"Anna","roles":["editor","author"]}} wird strukturiert mit drei Ebenen — sofort erkennbar, dass roles ein Array innerhalb von user ist.
  • Fehlerdiagnose: bei {"a":1,} meldet der Validator "Unexpected token } in JSON at position 7" — das trailing comma ist verboten.
  • Single-Quote-Fall: {'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 '}'".

Grenzen, Edge Cases und Sicherheit

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.

Häufige Fragen zum JSON Formatter

Warum bekomme ich "Unexpected token" bei einem trailing comma?
RFC 8259 verbietet trailing commas explizit. {"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.
Was ist der Unterschied zwischen JSON und JSON5?
JSON5 ist eine Superset-Erweiterung, die Kommentare (// 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.
Wie viel spare ich durch Minify wirklich?
Bei normal formatiertem JSON (2 Spaces, Zeilenumbrüche) sind 20–40 % typisch. Hochstrukturierte, tief verschachtelte Daten sparen mehr, kompakte Arrays mit kurzen Schlüsseln weniger. Über HTTP wirkt zusätzlich gzip/brotli — gemessen am Wire-Output ist Minify oft nur noch 5–10 % wert.
Kann ich Kommentare in JSON verwenden?
Nicht in striktem JSON nach RFC 8259. Die Workarounds sind: JSONC (VSCode), JSON5 oder ein Pseudo-Schlüssel wie "_comment": "…", der von Konsumenten ignoriert wird. Für Configs ist JSONC inzwischen Industriestandard.
Welche Einrückung empfiehlt sich für meine API-Antworten?
Für Production-APIs: Minify, weil jeder Klient (Browser, Mobile) das selbst lesen kann und Bandbreite knapp ist. Für Dev-/Staging-Logs: 2 Spaces, weil Menschen drauflesen. Konsistent halten — Mischformen erschweren Diffs in Git.
Werden meine Daten beim Formatieren irgendwo gespeichert?
Nein. Parsing, Formatting und Minify laufen ausschließlich in JavaScript im Browser. CalcSI sieht weder Inhalt noch Größe Ihrer Daten. Der optionale ?data=-URL-Parameter bleibt lokal — er wird nur in der URL gespeichert, nicht an den Server gesendet.

Verwandte Tools

  • JSON Editor — Tree- und Table-View, JSON-Schema-Validierung, JSONPath und JMESPath-Abfragen für tiefes Editieren.
  • YAML ↔ JSON Converter — Verlustfreie Umwandlung zwischen YAML und JSON für Configs, Docker Compose und CI-Pipelines.
  • CSV zu JSON — Tabellarische CSV-Exporte in JSON-Arrays umwandeln und umgekehrt, mit RFC-4180-Quoting.