Entwickler-Tools

JSON validieren und die häufigsten Fehler verstehen

Die JSON-Syntaxregeln laut Standard, die fünf Fehler hinter fast jedem Parse-Fehler und wie man eine Datei im Browser, im Terminal oder mit Node.js validiert.

JSON zu validieren bedeutet zu prüfen, dass der Text der in RFC 8259 definierten Grammatik folgt: Objekte in geschweiften Klammern mit Schlüsseln in doppelten Anführungszeichen, Arrays in eckigen Klammern, durch Kommas getrennte Werte ohne abschließendes Komma und keine Kommentare. Fast jeder Parse-Fehler hat eine von fünf Ursachen: abschließende Kommas, einfache Anführungszeichen, Kommentare, Schlüssel ohne Anführungszeichen und unzulässige Werte wie undefined oder NaN. Validieren kannst du in Sekunden mit einem Online-Tool, mit jq im Terminal oder mit JSON.parse in Node.js.

Dieser Artikel geht die Regeln durch, zeigt, wie man die Fehlermeldungen liest, und vergleicht die Möglichkeiten zum Validieren je nach Kontext.

Die JSON-Regeln in sechs Zeilen

  1. Ein JSON-Dokument ist ein Wert: Objekt, Array, String, Zahl, true, false oder null.
  2. Objekte stehen zwischen {} und enthalten "schlüssel": wert-Paare, durch Kommas getrennt.
  3. Arrays stehen zwischen [] und enthalten durch Kommas getrennte Werte.
  4. Strings verwenden immer doppelte Anführungszeichen; Sonderzeichen darin werden mit \ maskiert (\", \\, \n, \uXXXX).
  5. Zahlen haben keine Anführungszeichen, keine führenden Nullen und keine Formen wie .5 oder +1; 1e3 ist gültig.
  6. Es gibt keine Kommentare, abschließenden Kommas, undefined, NaN, Infinity oder Datumsangaben als nativen Typ (sie werden als Strings geschrieben).

Ein gültiges Beispiel:

{
  "name": "AIMRAN Tools",
  "version": 2,
  "active": true,
  "tags": ["bilder", "json", "text"],
  "author": { "name": "Aimran", "web": "https://aimran.es" },
  "publishedAt": "2026-10-06"
}

Die fünf häufigsten Fehler

1. Abschließendes Komma

{ "a": 1, "b": 2, }

In JavaScript gültig, in JSON ungültig. Node.js 22 lehnt es ab mit Expected double-quoted property name in JSON at position 18 (line 1 column 19): Nach dem Komma erwartet es einen weiteren Schlüssel und findet }.

2. Einfache Anführungszeichen

{ 'a': 1 }

JSON erlaubt nur doppelte Anführungszeichen. Node.js 22 liefert Expected property name or '}' in JSON at position 2 (line 1 column 3): Der Parser erreicht das einfache Anführungszeichen und erkennt es nicht als Beginn eines Schlüssels. Das ist der typische Fehler beim Kopieren eines Objekts aus Python- oder JavaScript-Code.

3. Kommentare

{
  // Konfiguration
  "debug": true
}

Weder // noch /* */ existieren in JSON. Einige abgeleitete Formate (JSONC, JSON5) erlauben sie, weshalb Dateien wie tsconfig.json oder die settings.json von VS Code sie tolerieren, aber ein strikter Parser lehnt sie ab.

4. Schlüssel ohne Anführungszeichen

{ name: "Aimran" }

In JavaScript ist das ein gültiges Objektliteral; in JSON muss der Schlüssel in doppelten Anführungszeichen stehen. Node.js liefert dieselbe Meldung wie bei einfachen Anführungszeichen (Expected property name or '}'), weil in beiden Fällen das doppelte Anführungszeichen fehlt.

5. Werte, die es in JSON nicht gibt

{ "total": NaN, "date": undefined }

NaN, Infinity und undefined sind keine JSON-Werte. Beim Serialisieren mit JSON.stringify in JavaScript verschwinden undefined-Eigenschaften und NaN wird zu null, was das Problem manchmal verbirgt, bis ein anderes System die Datei liest.

Seltenere Fehler: typografische Anführungszeichen („ und “) aus einer Textverarbeitung, ein BOM-Zeichen am Dateianfang oder eine Zahl mit führender Null (007).

Wie man eine Fehlermeldung liest

Parser melden die Position (Zeichenindex) oder Zeile und Spalte, an der sie den Text nicht mehr verstanden haben. Dieser Punkt ist, wo der Parser aufgegeben hat, und nicht immer, wo der eigentliche Fehler liegt: Eine nicht geschlossene Klammer in Zeile 3 kann am Dateiende gemeldet werden. Führt dich die Meldung nicht direkt zum Problem, suche von der gemeldeten Position rückwärts nach dem letzten noch gültigen Element.

Python 3.13 ist beim abschließenden Komma zum Beispiel beschreibender: Illegal trailing comma before end of object: line 1 column 17 (char 16). Frühere Versionen gaben die generische Meldung Expecting property name enclosed in double quotes.

Möglichkeiten, JSON zu validieren

Kontext Werkzeug Befehl oder Verwendung
Schnell, nichts zu installieren Online-Validator Text in den JSON-Formatierer von AIMRAN Tools einfügen: Er markiert die Fehlerzeile und formatiert das Ergebnis, ohne die Daten an einen Server zu senden.
Terminal (Linux, macOS, WSL) jq jq . datei.json gibt das formatierte JSON oder den Fehler mit Zeile aus. jq empty datei.json validiert nur.
Terminal, nichts zu installieren Python python3 -m json.tool datei.json
JavaScript-Projekt Node.js node -e "JSON.parse(require('fs').readFileSync('datei.json','utf8'))"
Editor VS Code, Zed usw. Sie markieren Syntaxfehler beim Tippen; stelle sicher, dass die Datei im JSON-Modus ist und nicht in JSONC.
Struktur validieren, nicht nur Syntax JSON Schema Definiere, welche Schlüssel und Typen erwartet werden, und validiere mit einer Bibliothek wie Ajv (JavaScript) oder jsonschema (Python).

Für sensible Daten (Konfigurationen mit Schlüsseln, Nutzerexporte) bevorzuge Werkzeuge, die lokal oder im Browser arbeiten, ohne den Inhalt hochzuladen.

Syntax validieren ist nicht Inhalt validieren

Ein syntaktisch korrektes JSON-Dokument kann für deine Anwendung trotzdem unbrauchbar sein: ein falsch geschriebener Schlüssel, eine Zahl, wo du einen String erwartet hast, ein fehlendes Pflichtfeld. Genau das löst JSON Schema, ein Standard zur Beschreibung der erwarteten Form eines Dokuments. Wenn du JSON von Dritten konsumierst oder eine API bereitstellst, lohnt es sich, ein Schema zu definieren und es an der Grenze deines Systems zu validieren.

Fazit

JSON ist ein kleines Format mit strikten Regeln, und die meisten Fehler entstehen, weil man es wie JavaScript behandelt: abschließende Kommas, einfache Anführungszeichen, Kommentare und Schlüssel ohne Anführungszeichen. Um den Fehler zu finden, nutze einen Validator, der die Position meldet (online, jq, json.tool oder JSON.parse), und denk daran, dass der gemeldete Punkt der ist, an dem der Parser aufgehört hat, nicht zwingend der, an dem das Problem begann. Und wenn das JSON Teil eines Vertrags zwischen Systemen ist, ergänze JSON Schema, um auch den Inhalt zu validieren.

Quellen und Referenzen

  1. RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format rfc-editor.org
  2. json.org: Einführung in JSON json.org
  3. MDN: JSON.parse() developer.mozilla.org
  4. jq: offizielles Handbuch jqlang.github.io
  5. Python: Modul json (json.tool) docs.python.org

Passende Tools

Herramientas gratuitas de AIMRAN Tools que funcionan en tu navegador, sin registro.

Ver todas las herramientas