JSON-Formatter & Validator Pro

JSON formatieren, validieren, abfragen, vergleichen und transformieren – vollständig im Browser

JSON-Eingabe

Einrückung

Formatierte Ausgabe

Die formatierte Ausgabe erscheint hier

JSON-Formatter, Validator, JSONPath, Diff & Schema – onDevTools

JSON formatieren, validieren, abfragen, vergleichen und transformieren – vollständig im Browser. Strikter Parser nach RFC 8259 plus JSONC-Modus, Validierung gegen JSON Schema Draft 2020-12, JSONPath nach RFC 9535, Deep Diff mit JSON Merge Patch sowie Transformationen zum Abflachen / Aufflachen / Entfernen von Nullwerten – ohne Upload, ohne Tracking.

Funktionen

  • Pretty-Print und Minifizierung von JSON mit konfigurierbarer Einrückung (2, 4, 8 Leerzeichen) und optionaler alphabetischer Schlüsselsortierung
  • Strikter Parser nach RFC 8259 / ECMA-404 sowie ein toleranter JSONC-Modus, der //- und /* */-Kommentare sowie abschließende Kommas akzeptiert
  • Interaktive, einklappbare Baumansicht mit Volltextsuche, vollständigem Aus- und Einklappen sowie knotenweisem Kopieren von Werten oder JSON-Pointer-Pfaden
  • JSON-Schema-Validator (Draft 2020-12), der Verstöße gegen type, required, enum, pattern, min/max, oneOf/anyOf/allOf, additionalProperties und Array-Elemente mit vollständigen Instanzpfaden ausgibt
  • JSONPath-Abfrage-Engine (RFC 9535) mit Unterstützung für Wildcards, rekursiven Abstieg (..), Array-Slicing und Filterausdrücke wie $[?(@.price > 10)]
  • Tiefer Side-by-Side-Diff mit farbcodierten hinzugefügten / entfernten / geänderten / unveränderten Abschnitten sowie Kopieren oder Herunterladen des Diff-Ergebnisses
  • Transformations-Pipeline: Abflachen in Punktnotation, Aufflachen, Entfernen von Nullwerten, Entfernen leerer Zeichenketten/Arrays/Objekte und Verkettung von Operationen
  • JSON-Statistik-Dashboard: Gesamtanzahl der Elemente, Anzahl von Objekten und Arrays, Aufschlüsselung nach Typ und maximale Verschachtelungstiefe
  • Inline-Fehlerausgabe mit Zeilen- und Spaltenangabe des Parsers sowie Hinweis auf den JSONC-Modus, wenn der Fehler nach einem Kommentar oder einem abschließenden Komma aussieht
  • Ein-Klick-Kopieren oder Herunterladen für formatierte, minifizierte, Schema- oder Diff-Ausgaben
  • Läuft vollständig clientseitig – JSON, Schemata und Diff-Eingaben verlassen Ihren Browser nicht

Anleitung

  1. Fügen Sie Ihr JSON in das Eingabefeld ein oder ziehen Sie es hinein – die Auto-Formatierung erfolgt während der Eingabe, oder klicken Sie auf Formatieren für einen expliziten Durchlauf.
  2. Schlägt das Parsen bei einer Konfigurationsdatei oder VS-Code-Einstellungen fehl, aktivieren Sie den JSONC-Schalter, um Kommentare und abschließende Kommas zuzulassen, und führen Sie den Vorgang erneut aus.
  3. Wechseln Sie in die Baumansicht, um tief verschachtelte Strukturen zu erkunden; nutzen Sie das Suchfeld, um passende Schlüssel oder Werte hervorzuheben, und kopieren Sie Pfad oder Wert eines beliebigen Knotens.
  4. Öffnen Sie den Tab Schemavalidierung, fügen Sie ein JSON-Schema-Dokument ein und klicken Sie auf Validieren – jeder Verstoß zeigt das fehlgeschlagene Schlüsselwort und den JSON-Pointer-Pfad des betroffenen Werts.
  5. Verwenden Sie den Tab Diff-Vergleich, um zwei JSON-Dokumente zu vergleichen, und kopieren Sie das Patch als JSON Merge Patch, das andernorts angewendet werden kann.
  6. Nutzen Sie den Tab JSONPath-Abfrage, um Teile des Dokuments mit Ausdrücken wie $.store.book[?(@.price < 10)].title zu extrahieren oder zu filtern.
  7. Verwenden Sie den Tab Transformationen zum Abflachen, Aufflachen oder Entfernen von Nullwerten; verketten Sie Transformationen, indem Sie sie auf der aktualisierten Eingabe erneut anwenden, und kopieren oder laden Sie das Ergebnis dann herunter.

Tipps & Best Practices

  • Aktivieren Sie JSONC, sobald Sie „Unexpected token /“ oder „Unexpected token ,“ sehen – fast immer handelt es sich um eine Konfigurationsdatei mit Kommentaren oder einem abschließenden Komma.
  • Verwenden Sie Schlüssel sortieren vor dem Commit von JSON-Konfigurationsdateien, um PR-Diffs minimal zu halten.
  • Kopieren Sie den JSON-Pointer-Pfad aus der Baumansicht, um in Bug-Reports oder PR-Beschreibungen einen Deep-Link auf einen bestimmten Knoten zu hinterlegen.
  • Wird eine 64-Bit-ID als 1234567890123456800 dargestellt, gibt Ihr Producer sie als Zahl aus – stellen Sie die API darauf um, IDs als Zeichenketten zu senden.
  • Verketten Sie Nullwerte entfernen → Minifizieren → Kopieren, um die kleinstmögliche Payload für HTTP-Request-Bodies zu erzeugen.

FAQ

Speichern Sie mein JSON?

Nein. Parsen, Validierung, Schemaprüfungen, Diffing und Transformationen laufen vollständig in Ihrem Browser über lokales JavaScript und die Web-Crypto- bzw. DOM-APIs – nichts wird hochgeladen. Damit können Sie API-Antworten, Konfigurationsdateien oder sensible Payloads aus Produktionssystemen bedenkenlos einfügen.

Welcher JSON-Spezifikation folgt der Parser?

Der strikte Modus folgt RFC 8259 / ECMA-404, den IETF- und ECMA-Standards für JSON. Der JSONC-Modus (über den JSONC-Schalter) ergänzt die Erweiterungen für Kommentare und abschließende Kommas, wie sie in der settings.json von VS Code, in tsconfig.json und ähnlichen Konfigurationsdateien verwendet werden. JSON5 (z. B. nicht-quotierte Schlüssel, einfache Anführungszeichen, Hex-Zahlen) wird derzeit nicht unterstützt – verwenden Sie hierfür einen JSON5-Parser, falls Ihre Eingabe diese Formen erfordert.

Was unterstützt der JSON-Schema-Validator?

Die Validierung läuft gegen JSON Schema Draft 2020-12 und deckt vollständig type, required, enum, pattern, format, minimum/maximum, minLength/maxLength, minItems/maxItems, additionalProperties, items, prefixItems, oneOf/anyOf/allOf, $ref sowie das bedingte if/then/else ab. Jeder Verstoß meldet das fehlgeschlagene Schlüsselwort plus den JSON-Pointer-Pfad zum fehlerhaften Wert, sodass Sie tief verschachtelte Probleme punktgenau lokalisieren können, ohne die gesamte Instanz zu durchsuchen.

Welche JSONPath-Ausdrücke werden unterstützt?

Die Abfrage-Engine implementiert den Funktionsumfang von RFC 9535: Wurzel ($), untergeordnetes Segment ($.key, $['key']), Array-Index und -Slice ([0], [0:3]), Wildcards ([*]), rekursiven Abstieg (..) sowie Filterausdrücke mit Vergleichs-, Regex- und logischen Operatoren (z. B. $[?(@.price > 10 && @.in_stock == true)]). Mehrere Ergebnisse werden als Array zurückgegeben; die Werte werden in Dokumentreihenfolge extrahiert.

Was ist der Unterschied zwischen JSONC und JSON5?

JSONC ist reines JSON plus //-Zeilenkommentare, /* */-Blockkommentare und abschließende Kommas – beliebt für von Hand gepflegte Konfigurationsdateien. JSON5 ist eine Obermenge, die zusätzlich nicht-quotierte Schlüssel, in einfachen Anführungszeichen gesetzte Zeichenketten, Hex-Zahlen, Zahlen mit führendem Dezimalpunkt sowie NaN/Infinity erlaubt. Dieses Tool unterstützt JSONC; für JSON5-Eingaben müssen Sie diese vorab konvertieren oder einen JSON5-Parser verwenden.

Kann ich sehr große JSON-Dateien formatieren?

Ja, jedoch skalieren die Baumansicht und die JSONPath-Engine etwa linear mit der Knotenanzahl, sodass die Oberfläche oberhalb von ~1 MB / ~50.000 Knoten merklich langsamer wird. Verwenden Sie bei großen Payloads die Klartextansicht statt der Baumansicht, führen Sie zuerst die Minifizierungs-Transformation aus, falls Sie nur eine kompakte Ausgabe benötigen, oder teilen Sie das Dokument nach Top-Level-Schlüsseln auf. Streaming und JSON Lines (.jsonl) sind nicht im Funktionsumfang – verwenden Sie hierfür ein CLI wie jq.

Wie schneidet das Tool im Vergleich zu jq, jsonlint oder dem in VS Code integrierten Formatter ab?

jq ist für skriptbasierte Pipelines und Streaming unschlagbar, und jsonlint deckt die strikte Validierung ab. Der Vorteil dieses Tools liegt darin, alles an einem Ort zu erledigen – Formatieren + Validieren + Schemaprüfung + JSONPath + Deep Diff + Transformationen – ohne den Browser zu verlassen. Der in VS Code integrierte Formatter beherrscht zwar Pretty-Printing, aber keine schemabewussten Fehlerpfade, kein JSONPath und kein Diff/Merge.

Warum meldet der Parser bei einer Konfigurationsdatei „Unexpected token“?

Der Parser arbeitet standardmäßig strikt, sodass //-Kommentare, /* */-Blöcke und abschließende Kommas alle einen Fehler erzeugen, der auf das betroffene Zeichen zeigt. Das Statuspanel schlägt automatisch den JSONC-Modus vor, wenn das Fehlermuster zu einer dieser Funktionen passt. Zeigt die Meldung auf eine vollständig in Anführungszeichen gesetzte Zeichenkette, prüfen Sie auf nicht escapte Backslashes oder Steuerzeichen – das sind die anderen häufigen Ursachen.

Kann ich Einrückung und Schlüsselreihenfolge anpassen?

Ja. Wählen Sie 2, 4 oder 8 Leerzeichen im Einrückungs-Steuerelement und aktivieren Sie Schlüssel sortieren, um Objekt-Schlüssel in alphabetischer Reihenfolge auszugeben – nützlich für stabile Diffs und reproduzierbare Konfigurationsdateien. Die Ausgabe erfolgt stets in UTF-8 mit zeilenweise getrennten Einträgen (kein BOM); der Formatter sortiert Array-Elemente nie um, da dies die Semantik verändern würde.

Welche Transformationsoperationen sind verfügbar?

Abflachen wandelt {a:{b:1}} in {"a.b":1} für Tools um, die Schlüssel in Punktnotation erwarten (Umgebungsvariablen, Feature Flags). Aufflachen kehrt dies um. Nullwerte entfernen entfernt rekursiv alle null-belegten Eigenschaften, Leere entfernen entfernt zusätzlich leere Zeichenketten, [] und {}, und Minifizieren erzeugt eine einzeilige Ausgabe. Transformationen werden auf die aktuelle Eingabe angewendet, sodass Sie sie zu Pipelines verketten können.

Unterstützt das Tool das Extrahieren von JSON-Pointer-Pfaden?

Ja. Wenn Sie in der Baumansicht über einen Knoten fahren, wird dessen JSON-Pointer-Pfad (RFC 6901) angezeigt – z. B. /store/book/0/author – den Sie mit einem Klick kopieren können. JSON Pointer ist dieselbe Notation, die Schema- und Diff-Ergebnisse zur Identifikation von Positionen verwenden, sodass Sie einen Pfad aus einem Panel in ein anderes einfügen können, um zum gleichen Wert zu navigieren.

Kann ich ein formatiertes Ergebnis mit Teamkollegen teilen?

Am schnellsten geht es, wenn die Person das JSON auf ihrem Gerät einfügt – es gibt keinen serverseitigen Status, auf den ein Link verweisen könnte. Wenn Sie eine permalink-artige Übergabe brauchen, verwenden Sie ein Gist oder einen Paste-Dienst mit der minifizierten Ausgabe. Vermeiden Sie in jedem Fall das Teilen von Tokens, Geheimnissen oder personenbezogenen Daten, auch clientseitig, da Zwischenablage oder Konsole des Empfängers diese persistieren könnten.

Werden Unicode und große Zahlen korrekt verarbeitet?

Sämtliche Eingabe wird als UTF-8 behandelt, und Surrogat-Paare (Emojis, CJK-Zeichen) durchlaufen den Round-Trip ohne Escaping. Zahlen oberhalb von Number.MAX_SAFE_INTEGER (2^53 − 1) verlieren an Genauigkeit, weil der zugrunde liegende Parser IEEE-754-Doubles verwendet – das ist eine Eigenheit der JSON-Spezifikation, keine Einschränkung des Tools. Wenn Sie 64-Bit-IDs übertragen, senden Sie diese als Zeichenketten – so verfahren auch die meisten APIs.