Zum Hauptinhalt springen

JSON validieren

Dieses Tool führt eine strenge Syntaxprüfung nach RFC 8259 direkt in Ihrem Browser durch, ohne Ihre Nutzdaten über das Netzwerk zu senden. Er zeigt die genaue Zeile und Spalte von Syntaxfehlern – mit visuellem Caret-Zeiger, einer Diagnose in klarer, verständlicher Sprache und einer konkreten Klassifizierung für nachgestellte Kommas, einfache Anführungszeichen, Schlüssel ohne Anführungszeichen, nicht zusammenpassende Klammern, BOMs und geschweifte Anführungszeichen aus Textverarbeitungen.

Nur lokal
Warten auf Eingabe – JSON-Dokument einfügen oder „Beispiel testen“ klicken
Zu prüfendes JSON-Dokument
0 B1 ZeileZ. 1, Sp. 1

Wie funktioniert JSON validieren?

Die JSON.parse()-Implementierungen der Browser liefern berüchtigt unhilfreiche Fehlermeldungen wie "Unexpected token in JSON at position 4812" . Diese rohe Ausnahme zwingt Entwickler dazu, Byte-Offsets von Hand zu zählen und zu raten, welches Anführungszeichen, Komma oder welche Klammer verrutscht ist.

Der Validator von ToolsByUs implementiert einen dedizierten, nicht-rekursiven lexikalischen Scanner und Token-Prüfer, der Zeilennummern, Spaltenpositionen, Stapel für die Verschachtelung von Begrenzern und Zeichen-Lookaheads gemäß RFC 8259 verfolgt:

  • Keine rohen Ausnahmen: Ausnahmen werden abgefangen und in brauchbare Diagnoseberichte übersetzt, mit exakten Caret-Ausschnitten, die auf das fehlerhafte Zeichen in der genauen Zeile und Spalte zeigen.
  • Explizite Fehlerklassifizierung: Erkennt zuverlässig nachgestellte Kommas, Objektschlüssel ohne Anführungszeichen, Begrenzer mit einfachen Anführungszeichen, fehlende Trennkommas und nicht zusammenpassende Klammern (z. B. ein Array, das mit einer geschweiften Klammer geschlossen wird).
  • Erkennung von Smart Quotes und BOM: Findet subtile, unsichtbare UTF-8-Byte-Order-Marks (0xFEFF) und geschweifte Anführungszeichen ( “, ” ), die beim Kopieren von JSON aus Rich-Text-Editoren oder Textverarbeitungen häufig eingeschleift werden.
  • Strenge Zahlengrammatik: Verwirft nicht-endliche IEEE-754-Zahlen wie NaN, Infinity, und führende Nullen in Zahlen (wie 012 ), die gegen RFC 8259 Abschnitt 6 verstoßen.
  • Schutz bis 10.000 Ebenen Tiefe: Setzt eine iterative endliche Zustandsmaschine ein, die tief verschachtelte Strukturen validiert, ohne dass der Call-Stack des Browsers überläuft.

Der Parser arbeitet mit einer Zustandsmaschine, die zwischen den Zuständen BEFORE_KEY, AFTER_KEY, COLON, BEFORE_VALUE und AFTER_VALUE wechselt und dabei prüft, dass öffnende strukturelle Klammern ( [ und { ) in Last-in-first-out-Reihenfolge exakt zu ihren schließenden Gegenstücken passen.

Beispiel für fehlerhafte Eingabe

{
  'service': "auth",
  "active": true,
}

Beispielausgabe

Line 2, Column 3:
  'service': "auth",
  ^
Error: Single quotes are not allowed in JSON. Use double quotes (").
Recommendation: Replace single quotes with double quotes.

Welche Optionen und Sonderfälle unterstützt JSON validieren?

Technische Referenz und Optionen
ParameterTypStandardVerhalten & Sonderfälle
TRAILING_COMMASyntaxfehlerVerbotenNachfolgender Komma vor } oder ]. Obwohl in JavaScript/JSON5 gültig, verstößt dies gegen RFC 8259 Abschnitt 4.
SINGLE_QUOTESSyntaxfehlerVerbotenEinfache Anführungszeichen (') zum Umwickeln von Zeichenketten oder Eigenschaftsschlüsseln. JSON erfordert standardmäßige ASCII-Doppelzeichen (").
UNQUOTED_KEYSyntaxfehlerVerbotenObjekteigenschaftsbezeichner ohne doppelte Anführungszeichen (z. B. { name: 'value' }).
MISSING_COMMASyntaxfehlerVerbotenAufeinanderfolgende Objektschlüssel-Wert-Paare oder Arrayelemente ohne dazwischenliegendes Komma-Trennzeichen.
MISMATCHED_BRACKETStrukturfehlerVerbotenNicht übereinstimmende Containertrennzeichen, wie das Schließen eines Arrays mit einer geschweiften Klammer ( ] vs } ).
SMART_QUOTESKodierungsfehlerErkanntTypografische Anführungszeichen aus Textverarbeitungsprogrammen („ ”). Automatische Diagnose mit Spaltenangabe und Korrektur.
BOM (Byte Order Mark)Kodierungsfehler0xFEFFFührende UTF-8-Bytereihenfolgemarke, die gemäß RFC 8259 Abschnitt 8.1 in Netzwerkübertragungen verboten ist.
NAN_INFINITY_REJECTEDZahlengrammatikVerbotenNaN, Infinity und -Infinity sind unter RFC 8259 Abschnitt 6 keine gültigen JSON-Zahlentoken.

Häufig gestellte Fragen

Warum scheitert gültige JavaScript-Objektsyntax an der JSON-Validierung?

JSON (RFC 8259) ist ein Austauschformat, keine Programmiersprache. Features, die JavaScript erlaubt – etwa nachgestellte Kommas, Zeichenketten in einfachen Anführungszeichen, Eigenschaftsschlüssel ohne Anführungszeichen, Kommentare und NaN-Werte – verbietet der JSON-Standard ausdrücklich, um sprachübergreifende Interoperabilität zwischen Parsern für Python, Go, Java, C++ und Rust sicherzustellen.

Was bedeutet der Caret-Zeiger?

Das Caret-Zeichen (^) zeigt direkt auf die Zeichenspalte, an der der lexikalische Parser auf ein unerwartetes Zeichen oder eine illegale Sequenz gestoßen ist – so finden Sie die exakte Bruchstelle der Syntax selbst in Nutzdaten mit mehreren Megabytes.

Wie erkennt der Validator Smart Quotes?

Beim Kopieren von Text aus Dokumentationstools, Blogartikeln oder E-Mail-Clients werden doppelte ASCII-Anführungszeichen (\") häufig in typografische geschweifte Anführungszeichen (Unicode U+201C und U+201D) umgewandelt. Der Validator erkennt diese Unicode-Codepunkte ausdrücklich und rät, sie durch normale doppelte Anführungszeichen zu ersetzen.

Warum lehnt JSON Kommentare ab?

Douglas Crockford hat Kommentare bewusst aus der ursprünglichen JSON-Spezifikation entfernt, damit Parser keine Verarbeitungsdirektiven oder Pragmas übernehmen; so blieb JSON rein ein Datenaustauschformat. Für Konfigurationsdateien mit Kommentaren verwenden Sie JSONC.

Wie werden doppelte Schlüssel nach RFC 8259 behandelt?

RFC 8259 schreibt vor, dass Objektschlüssel eindeutig sein sollten. Während manche native Parser frühere Werte stillschweigend durch spätere überschreiben, markiert ToolsByUs doppelte Schlüssel mit Diagnose-Warnungen, um subtile Datenverlust-Bugs zu verhindern.

Werden meine geprüften Nutzdaten an ein Backend gesendet?

Nein. Parsen, Token-Prüfung und Validierung laufen zu 100% client-seitig in Ihrem Browser. Keine Daten verlassen jemals Ihren Rechner – garantiert durch unsere Zero-Backend-Architektur.