How to Fix Invalid JSON: Common Errors & Solutions

Diagnose and fix the 10 most common JSON errors developers encounter. Each error includes before/after code examples and a clear explanation of why it happens.

JSONTech-TeamJanuary 20, 202511 min read

Warum JSON-Parsing fehlschlägt

JSON sieht einfach aus — und das ist es auch — aber seine Striktheit ist genau das, was die Leute durcheinander bringt. Im Gegensatz zu JavaScript-Objektliteralen hat JSON null Toleranz für Syntax-Abkürzungen. Keine nachgestellten Kommas. Keine einfachen Anführungszeichen. Keine Kommentare. Jede Abweichung führt zu einem Parsing-Fehler, und die Fehlermeldungen sind oft wenig hilfreich: Unerwartetes Token oder JSON.parse: erwartet ',' oder '}' in Zeile 1.

Dieser Leitfaden behandelt die 10 häufigsten JSON-Fehler, auf die Entwickler in der Praxis stoßen. Jeder Fehler enthält das fehlerhafte JSON, warum der Parser es ablehnt und die korrigierte Version. Lesezeichen für diese Seite setzen — du wirst sie wieder besuchen.

Probiere es selbst aus: Füge fehlerhaftes JSON in unser JSON Repair Tool ein, um die meisten dieser Fehler sofort automatisch zu beheben.

Fehler 1: Nachgestelltes Komma

Dies ist der häufigste JSON-Fehler. JavaScript erlaubt nachgestellte Kommas in Objekten und Arrays, daher schreiben Entwickler JSON auf die gleiche Weise. Aber JSON erlaubt sie nicht.

Fehlerhaft:

{
  "name": "Alice",
  "age": 30,
}

Korrigiert:

{
  "name": "Alice",
  "age": 30
}

Das nachgestellte Komma nach 30 führt dazu, dass der Parser ein weiteres Schlüssel-Wert-Paar erwartet. Wenn er stattdessen eine schließende Klammer findet, wirft er einen Fehler. Entferne das Komma nach dem letzten Element in jedem Objekt und Array.

Fehler 2: Einfache Anführungszeichen anstelle von doppelten Anführungszeichen

JSON erfordert doppelte Anführungszeichen für sowohl Schlüssel als auch String-Werte. Einfache Anführungszeichen sind ein JavaScript-Phänomen, das der JSON-Parser sofort ablehnt.

Fehlerhaft:

{
  'name': 'Alice',
  'city': 'Portland'
}

Korrigiert:

{
  "name": "Alice",
  "city": "Portland"
}

Dies passiert am häufigsten, wenn Objektliterale aus JavaScript-Code oder aus Python-Dictionaries (die ebenfalls einfache Anführungszeichen verwenden) kopiert werden. Ein Suchen-und-Ersetzen von ' zu " behebt es, aber sei vorsichtig mit Strings, die Apostrophe enthalten — diese müssen escaped werden.

Fehler 3: Unquoted Keys

JavaScript erlaubt es dir, { name: "Alice" } zu schreiben, ohne den Schlüssel zu quoten. JSON tut dies nicht. Jeder Schlüssel muss ein doppelt-quoted String sein.

Fehlerhaft:

{
  name: "Alice",
  age: 30
}

Korrigiert:

{
  "name": "Alice",
  "age": 30
}

Dies tritt normalerweise auf, wenn jemand JSON von Hand schreibt oder ein JavaScript-Objekt kopiert, ohne es zu konvertieren. Einige Editoren und API-Debugging-Tools zeigen gerne unquoted keys an, was das Problem maskiert, bis du versuchst, die Datei woanders zu parsen.

Fehler 4: Kommentare in JSON

JSON unterstützt keine Kommentare — weder // für einzeilige noch /* */ für Blockkommentare. Dies ist eine der frustrierendsten Einschränkungen des Formats, insbesondere für Konfigurationsdateien.

Fehlerhaft:

{
  // Datenbankeinstellungen
  "host": "localhost",
  "port": 5432 /* Standard-PostgreSQL-Port */
}

Korrigiert:

{
  "host": "localhost",
  "port": 5432
}

Wenn du Kommentare in Konfigurationsdateien benötigst, ziehe in Betracht, JSONC (JSON mit Kommentaren) zu verwenden, das von VS Code und TypeScript nativ unterstützt wird, oder wechsle zu YAML oder TOML. Für standardmäßiges JSON entferne alle Kommentare vor dem Parsen.

Fehler 5: Fehlendes Komma zwischen Elementen

Beim Hinzufügen eines neuen Feldes zu einem JSON-Objekt ist es leicht, das Komma zu vergessen, das es vom vorherigen Feld trennt. Der Parser sieht zwei aufeinanderfolgende Werte ohne Separator und erstickt.

Fehlerhaft:

{
  "name": "Alice"
  "age": 30
}

Korrigiert:

{
  "name": "Alice",
  "age": 30
}

Die Fehlermeldung weist normalerweise auf die Zeile nach dem fehlenden Komma hin, was irreführend sein kann. Wenn du Unerwarteter String oder Erwartetes Komma siehst, schaue dir die Zeile über der angegebenen Position an.

Fehler 6: Fehlende schließende Klammer oder geschweifte Klammer

Nicht übereinstimmende Klammern sind in großen JSON-Dateien schwer zu erkennen. Eine fehlende ] oder } führt dazu, dass der Parser über das beabsichtigte Ende einer Struktur hinausliest und verwirrende Fehler weit entfernt vom tatsächlichen Problem erzeugt.

Fehlerhaft:

{
  "users": [
    { "name": "Alice" },
    { "name": "Bob" }
}

Korrigiert:

{
  "users": [
    { "name": "Alice" },
    { "name": "Bob" }
  ]
}

Die Lösung: Verwende einen Editor mit Klammerabgleich (VS Code hebt übereinstimmende Paare hervor) oder einen JSON Validator, der den genauen Ort der Unstimmigkeit meldet.

Fehler 7: undefined, NaN oder Infinity

Diese sind gültige JavaScript-Werte, haben aber keine JSON-Darstellung. JSON.stringify konvertiert undefined stillschweigend in null (oder lässt den Schlüssel ganz weg), aber wenn du diese Werte manuell schreibst, lehnt der Parser sie ab.

Fehlerhaft:

{
  "score": NaN,
  "callback": undefined,
  "limit": Infinity
}

Korrigiert:

{
  "score": null,
  "callback": null,
  "limit": null
}

Ersetze undefined und NaN durch null oder lasse den Schlüssel ganz weg, wenn das Fehlen eines Wertes semantisch angemessen ist. Für Infinity ziehe in Betracht, eine Sentinel-Zahl oder eine String-Darstellung wie "Infinity" zu verwenden und sie in deinem Anwendungscode zu behandeln.

Fehler 8: Extra Komma nach dem letzten Array-Element

Dies ist die Array-Version von Fehler 1. Es tritt ständig in handbearbeiteten JSON-Dateien auf, insbesondere nach dem Löschen oder Umordnen von Elementen.

Fehlerhaft:

{
  "colors": [
    "red",
    "green",
    "blue",
  ]
}

Korrigiert:

{
  "colors": [
    "red",
    "green",
    "blue"
  ]
}

Das Muster ist dasselbe: Das Komma nach "blue" sagt dem Parser, dass er ein weiteres Element erwartet. Er findet stattdessen ] und meldet einen Fehler. Wenn du Elemente aus einem JSON-Array entfernst, überprüfe immer, ob das neue letzte Element ein nachgestelltes Komma hat.

Fehler 9: Smarte Anführungszeichen (geschwungene Anführungszeichen)

Dieser Fehler ist heimtückisch. Wenn du JSON aus einem Word-Dokument, einer Slack-Nachricht oder einem Blogbeitrag kopierst, kann dein System stillschweigend gerade Anführungszeichen (") durch typografische "smarte" Anführungszeichen (\u201C und \u201D) ersetzen. Sie sehen fast identisch aus, sind aber völlig unterschiedliche Zeichen.

Fehlerhaft:

{
  \u201Cname\u201D: \u201CAlice\u201D,
  \u201Ccity\u201D: \u201CPortland\u201D
}

Korrigiert:

{
  "name": "Alice",
  "city": "Portland"
}

Die Fehlermeldung ist normalerweise Unerwartetes Token an Position 1 oder 2, was verwirrend ist, bis du realisierst, dass die Anführungszeichen falsch sind. Die Lösung: Ersetze alle geschwungenen Anführungszeichen durch gerade doppelte Anführungszeichen. In der Not tippe die Anführungszeichen manuell in einem Texteditor ohne Formatierung neu.

Um dies zu verhindern, verwende immer einen Code-Editor (nicht einen Rich-Text-Editor), um JSON zu schreiben. Deaktiviere "smarte Anführungszeichen" in den Tastatureinstellungen deines Betriebssystems, wenn du häufig zwischen Anwendungen einfügst.

Fehler 10: BOM (Byte Order Mark) Zeichen

Ein BOM ist ein unsichtbares Zeichen (U+FEFF), das einige Windows-Texteditoren am Anfang einer Datei einfügen, um die Kodierung anzuzeigen. JSON-Parser sehen es als unerwartetes Zeichen vor der öffnenden Klammer und schlagen sofort fehl.

Symptome:

SyntaxError: Unerwartetes Token \uFEFF in JSON an Position 0

Du kannst das BOM in den meisten Editoren nicht sehen — es ist wirklich unsichtbar. Um es zu erkennen, öffne die Datei in einem Hex-Editor und suche nach den Bytes EF BB BF (UTF-8 BOM) ganz am Anfang.

So behebst du es:

  • In VS Code klicke auf den Kodierungsindikator in der Statusleiste und wähle "Speichern mit Kodierung" → "UTF-8" (ohne BOM).
  • In der Befehlszeile: sed -i '1s/^\xEF\xBB\xBF//' file.json
  • In Node.js entferne es vor dem Parsen: const clean = text.replace(/^\\uFEFF/, "");

Schnellreferenz: Alle 10 Fehler

#FehlerUrsacheLösung
1Nachgestelltes KommaKomma nach dem letzten Attribut/ElementEntferne das nachgestellte Komma
2Einfache Anführungszeichen' anstelle von " verwendetDurch doppelte Anführungszeichen ersetzen
3Unquoted keysSchlüssel ohne doppelte AnführungszeichenAlle Schlüssel in doppelte Anführungszeichen setzen
4Kommentare// oder /* */ in JSONAlle Kommentare entfernen
5Fehlendes KommaKein Komma zwischen ElementenKomma zwischen Elementen hinzufügen
6Fehlende Klammer/geschweifte KlammerUngeöffnete [ oder {Das fehlende schließende Zeichen hinzufügen
7undefined / NaN / InfinityJS-eigene Werte in JSONDurch null oder einen String ersetzen
8Extra Komma im ArrayNachgestelltes Komma im ArrayDas nachgestellte Komma entfernen
9Smarte AnführungszeichenGeschwungene Anführungszeichen aus Word/SlackDurch gerade doppelte Anführungszeichen ersetzen
10BOM-ZeichenUnsichtbares U+FEFF am DateianfangNeu speichern als UTF-8 ohne BOM

Verhindern von JSON-Fehlern

Fehler zu beheben ist gut. Sie gar nicht erst zu erzeugen, ist besser. Hier sind die Gewohnheiten, die JSON sauber halten:

  • Schreibe niemals JSON von Hand. Generiere es aus Code mit JSON.stringify oder dem Äquivalent deiner Sprache. Serializer produzieren gültiges JSON per Definition.
  • Verwende einen JSON-bewussten Editor. VS Code, JetBrains IDEs und Sublime Text heben alle JSON-Syntaxfehler in Echtzeit hervor. Wenn du ein rotes Zickzack siehst, behebe es, bevor du speicherst.
  • Validiere in CI. Füge einen Validierungsschritt zu deiner Build-Pipeline hinzu, der alle JSON-Dateien parst und bei Fehlern fehlschlägt. Eine einzige Zeile Shell-Skript erledigt das: find . -name "*.json" -exec python -m json.tool {} \\;
  • Verwende JSONC für Konfiguration. Wenn du Kommentare benötigst, verwende JSONC (.jsonc-Erweiterung), wo unterstützt. TypeScript, VS Code und viele andere Tools unterstützen es nativ.

Wann man automatisierte Reparatur verwenden sollte

Manchmal ist das JSON, das du erhältst, außerhalb deiner Kontrolle — eine API-Antwort von einem schlecht gebauten Dienst, eine von veralteter Software exportierte Datei oder ein Stück, das von einem nicht-technischen Teammitglied eingefügt wurde. In diesen Fällen ist die manuelle Reparatur mühsam und fehleranfällig.

Automatisierte Reparaturtools können die meisten der oben aufgeführten Fehler in einem Durchgang beheben. Sie parsen die fehlerhafte Eingabe, schließen auf die beabsichtigte Struktur und erzeugen gültiges JSON. Dies funktioniert gut bei häufigen Problemen wie nachgestellten Kommas, einfachen Anführungszeichen und unquoted keys.

Der Nachteil ist, dass automatisierte Reparatur Annahmen trifft. Wenn das JSON stark fehlerhaft ist — große Abschnitte fehlen oder strukturell mehrdeutig sind — könnte das Tool falsch raten. Validieren Sie immer die reparierte Ausgabe, bevor du sie in der Produktion verwendest.

Probiere es selbst aus: Füge fehlerhaftes JSON in unser JSON Repair Tool ein, um häufige Fehler automatisch zu beheben, oder verwende den JSON Validator, um genau herauszufinden, wo das Problem liegt.

Verwandte Tools