BrowserTools
Werbung
Startseite / Validatoren / JSON-Validator und -Formatierer

JSON-Validator und -Formatierer

Validiere, formatiere und minifiziere JSON in deinem Browser mit genauen Fehlerpositionen.

JSON-Validator und -Formatierer wird geladen… Wenn nichts passiert, aktiviere JavaScript.

JSON (JavaScript Object Notation) ist ein leichtgewichtiges, für Menschen lesbares Datenaustauschformat, das auf einer Teilmenge der JavaScript-Syntax beruht. Es wurde Anfang der 2000er von Douglas Crockford als einfachere Alternative zu XML für den Datenaustausch zwischen Web-Clients und -Servern populär gemacht. Standardisiert 2006 als RFC 4627 und später als ECMA-404 und RFC 8259, ist JSON zur universellen Sprache von Web-APIs, Konfigurationsdateien und Datenspeicherung geworden. Seine sechs Werttypen (Zeichenkette, Zahl, Boolean, null, Array und Objekt) lassen sich sauber auf die Datenstrukturen praktisch jeder Programmiersprache abbilden.

Beispiele

Eingabe {"name":"Ada","age":36}
Ausgabe Valid · object with 2 keys
Eingabe {'name': 'Ada'}
Ausgabe Invalid · property names must use double quotes

JSON ist strenger als ein JavaScript-Objektliteral: keine einfachen Anführungszeichen, keine nachgestellten Kommata.

Häufig gestellte Fragen

Wird mein JSON an einen Server gesendet?
Nein. Das Parsen und Formatieren erfolgt vollständig in deinem Browser über die nativen Funktionen JSON.parse und JSON.stringify, die in der JavaScript-Engine eingebaut sind. Deine Daten verlassen nie dein Gerät, sodass dieses Tool sicher mit API-Antworten, Datenbankexporten oder beliebigen vertraulichen JSON-Nutzlasten verwendet werden kann.
Welche genauen Regeln machen ein JSON gültig?
JSON hat eine strenge Grammatik, definiert durch RFC 8259 und ECMA-404. Schlüssel müssen Zeichenketten in doppelten Anführungszeichen sein. Zeichenketten-Werte müssen doppelte Anführungszeichen verwenden, keine einfachen. Nachgestellte Kommata nach dem letzten Element eines Objekts oder Arrays sind verboten. Kommentare sind nicht erlaubt. Zahlen dürfen keine führenden Nullen oder einen abschließenden Dezimalpunkt haben. Das Dokument muss genau einen Wert auf oberster Ebene enthalten (ein Objekt, Array, eine Zeichenkette, Zahl, einen Boolean oder null).
Was ist der Unterschied zwischen Formatieren und Minifizieren von JSON?
Formatieren (auch Verschönern genannt) fügt Zeilenumbrüche und Einrückung hinzu, damit die Struktur visuell klar und für Menschen leicht lesbar ist. Minifizieren entfernt alle unnötigen Leerzeichen (Leerzeichen, Tabs und Zeilenumbrüche), um die kompakteste gültige JSON-Zeichenkette zu erzeugen. Minifiziertes JSON wird in Produktions-API-Antworten und Konfigurationsdateien verwendet, wo jedes Byte an Bandbreite oder Speicher zählt; formatiertes JSON wird in der Versionsverwaltung, der Dokumentation und beim Debuggen verwendet.
Wie unterscheidet sich JSON von der JavaScript-Objektliteral-Syntax?
JSON ist eine strenge Teilmenge der JavaScript-Wertsyntax, doch beide sind nicht identisch. JSON verlangt Schlüssel und Zeichenketten-Werte in doppelten Anführungszeichen; JavaScript-Objektliterale erlauben Schlüssel ohne Anführungszeichen oder in einfachen. JSON verbietet nachgestellte Kommata, Kommentare, undefined-Werte, Funktionen und Symbol-Schlüssel, die in JavaScript alle gültig sind. JSON.parse ist bei diesen Regeln bewusst streng, damit JSON von Nicht-JavaScript-Systemen sicher geparst werden kann.
Welche JSON-Größe kann ich validieren und formatieren?
Das Tool akzeptiert JSON jeder Größe, doch es gibt praktische Grenzen. Nutzlasten bis zu mehreren Megabyte werden in Millisekunden geparst und formatiert. Sehr große Dokumente (Dutzende Megabyte oder mehr) können im Browser-Tab spürbare Verzögerungen oder Speicherdruck verursachen. Für die Verarbeitung extrem großer JSON-Dateien (Server-Logs, Datenexporte) sind Kommandozeilenwerkzeuge wie jq besser geeignet.
Unterstützt der Validator JSON5 oder JSONC (JSON mit Kommentaren)?
Nein. Dieses Tool verwendet die strenge JSON-Grammatik nach RFC 8259, die Kommentare und nachgestellte Kommata verbietet. JSON5 und JSONC sind inoffizielle Erweiterungen, die diese Funktionen erlauben. Viele Konfigurationsdateiformate (TypeScripts tsconfig.json, VS-Code-Einstellungen) verwenden JSONC, werden aber von spezialisierten Parsern verarbeitet, die nachsichtiger sind als das Standard-JSON.parse. Wenn deine Eingabe diese Erweiterungen nutzt, brauchst du einen JSONC- oder JSON5-Parser.
Kann ich damit JSON innerhalb einer Zeichenkette formatieren (escaptes JSON)?
Wenn du eine JSON-Zeichenkette hast, die in eine andere JSON-Zeichenkette eingebettet ist, mit ihren inneren Anführungszeichen als \" escapt, musst du zuerst das äußere JSON dekodieren, um die innere Zeichenkette zu extrahieren, und sie dann separat parsen und formatieren. Ein häufiges Szenario sind API-Fehlermeldungen, die eine rohe JSON-Nutzlast als Zeichenketten-Wert enthalten. Du kannst das gesamte äußere Dokument einfügen, den escapten Zeichenketten-Wert kopieren und ihn für einen zweiten Formatierungsdurchlauf einfügen.
Ist JSON dasselbe wie BSON oder MessagePack?
Nein. JSON ist ein Textformat; BSON (binäres JSON) und MessagePack sind binäre Serialisierungsformate, die dieselben logischen Datentypen wie JSON kodieren, jedoch in einer kompakten Binärdarstellung statt in UTF-8-Text. BSON wird intern von MongoDB verwendet und unterstützt zusätzliche Typen wie Datumsangaben und Binärdaten. MessagePack wird für die hochperformante Kommunikation zwischen Diensten verwendet. Ein JSON-Tool kann BSON oder MessagePack nicht direkt parsen.
Warum zeigt die Fehlermeldung nur den ersten Fehler?
JSON.parse hält beim ersten gefundenen Syntaxfehler an, weil nachfolgende Token im Kontext nicht parsebar sein können: Das Beheben des ersten Fehlers könnte den Rest des Dokuments gültig machen oder völlig andere Fehler offenlegen. Das ist dasselbe Verhalten wie bei den meisten JSON-Parsern. Behebe den gemeldeten Fehler und validiere erneut; gibt es weitere Fehler, erscheinen sie nacheinander.
Was ist ein häufiger Fehler, der JSON ungültig macht?
Der häufigste Fehler ist ein nachgestelltes Komma nach der letzten Eigenschaft eines Objekts oder dem letzten Element eines Arrays, etwa {"a": 1,} oder [1, 2, 3,]. Das ist in JavaScript und vielen Konfigurationsformaten gültig, in JSON aber ausdrücklich verboten. Weitere häufige Fehler sind das Verwenden einfacher Anführungszeichen für Zeichenketten, das Hinzufügen eines //-Kommentars und das Vergessen, Eigenschaftsnamen in Anführungszeichen zu setzen. Die Fehlermeldung von JSON.parse weist auf die genaue Zeichenposition hin, an der das Parsen fehlschlug.

Über JSON-Validator und -Formatierer

JSON ist in der modernen Entwicklung unausweichlich. REST-APIs liefern JSON-Antworten. Konfigurationsdateien für Werkzeuge wie ESLint, TypeScript und npm nutzen JSON. NoSQL-Datenbanken wie MongoDB speichern Dokumente als BSON (binäres JSON). Die Ereignis-Nutzlasten von Serverless-Funktionen sind JSON-Objekte. Entwickler müssen routinemäßig JSON aus API-Antworten, Datenbankexporten, Logdateien, Webhook-Nutzlasten und Konfigurationsvorlagen prüfen, formatieren oder validieren. Ein einziges falsch platziertes Komma oder eine nicht geschlossene Klammer macht das gesamte Dokument ungültig, und rohes, minifiziertes JSON aus einer Produktions-API ist ohne Formatierung kaum lesbar.

Dieser JSON-Validator und -Formatierer analysiert deine Eingabe lokal im Browser mit der nativen Funktion JSON.parse, demselben Parser, den jede JavaScript-Laufzeit verwendet. Er hebt die genaue Zeile und Spalte jedes Syntaxfehlers hervor, damit du Probleme sofort finden und beheben kannst. Sobald das JSON gültig ist, gibt das Tool es mit konfigurierbarer Einrückung gut lesbar aus oder minifiziert es, indem es alle unnötigen Leerzeichen entfernt, um die Nutzlast zu verkleinern. Da alles in deinem Browser läuft, werden deine JSON-Daten, die API-Schlüssel, Benutzerdatensätze oder vertrauliche Geschäftsdaten enthalten können, nie an einen Server gesendet.

Häufige JSON-Fehler sind nachgestellte Kommata nach dem letzten Element eines Arrays oder Objekts (in JavaScript gültig, in JSON jedoch verboten), Zeichenketten in einfachen Anführungszeichen (JSON verlangt doppelte) und Kommentare (JSON hat keine Kommentarsyntax, anders als JSONC oder JSON5). Zahlen mit führenden Nullen (wie 007) sind ebenfalls ungültig. Wenn du mit einem Format arbeitest, das JSON um diese Funktionen erweitert, brauchst du stattdessen einen JSONC- oder JSON5-Parser; das Standard-JSON.parse lehnt sie ab.

Wie JSON das Web eroberte

JSON wurde von Douglas Crockford geschaffen und popularisiert, der 2001 die Domain json.org registrierte und begann, sich für JSON als leichtgewichtige Alternative zu XML für den AJAX-Datenaustausch einzusetzen. Crockfords zentrale Einsicht war, dass die Objekt- und Array-Literalsyntax von JavaScript bereits ein gültiges Datenformat war; sie musste nur dokumentiert, auf sichere Typen beschränkt und beworben werden. Er behauptete bekanntlich, JSON eher „entdeckt“ als erfunden zu haben, und merkte an, dass die Syntax bereits in JavaScript selbst angelegt war.

Trotz seiner Einfachheit war JSONs Weg zur Standardisierung überraschend umstritten. Crockford veröffentlichte es zunächst unter einer Lizenz mit dem Satz „Die Software soll für das Gute genutzt werden, nicht für das Böse“, was dazu führte, dass einige Open-Source-Organisationen es als unfrei einstuften. Als die ECMA JSON 2013 als ECMA-404 formalisierte und die IETF 2017 den RFC 8259 veröffentlichte, verwendeten sie eine saubere Lizenz, doch Crockford behielt die Klausel „das Gute, nicht das Böse“ in der ursprünglichen json.org-Spezifikation bei und schuf so eine beständige (und etwas humorvolle) Lizenz-Fußnote in der Geschichte der Web-Standards.

Heute ist JSON wohl das am weitesten verbreitete geparste Datenformat überhaupt. Jede große Programmiersprache liefert einen JSON-Parser in ihrer Standardbibliothek mit. REST-APIs, GraphQL-Antworten, NoSQL-Datenbanken, Konfigurationsdateien, Log-Aggregationssysteme und Serverless-Event-Busse nutzen JSON als ihr natives Format. Die Ironie ist, dass JSON, das einfacher als XML sein sollte, selbst so allgegenwärtig geworden ist, dass um es herum ganze Ökosysteme JSON-naher Formate (JSON5, JSONC, NDJSON, JSON Schema, JSON Pointer, JSON Patch) gewachsen sind, um seine Grenzen zu überwinden.

Werbung
Werbung
Werbung