JSON-Parse-Fehler: 10 häufige Probleme und wie du sie behebst

2024-09-12

API-Antworten und Konfigurationsdateien scheitern oft an einem einzigen Parse-Fehler. Dieser Leitfaden zeigt zehn typische Fehler mit kaputtem Beispiel, Ursache und korrigiertem JSON sowie, wie du die Zeile im Online-Formatter findest.

1. Einfache Anführungszeichen bei Schlüsseln oder Strings

JSON verlangt doppelte Anführungszeichen für Schlüssel und Stringwerte. JavaScript-Objektliterale erlauben einfache Anführungszeichen, JSON jedoch nicht.

Typischer Fehler: Unexpected token ' in JSON at position …

Ungültig
{
  name: "Alice",
  "age": 30
}
Korrigiert
{
  "name": "Alice",
  "age": 30
}

2. Abschließende Kommas

Nach dem letzten Feld oder Array-Element darf kein Komma stehen. Editoren können solche trailing commas einfügen, die strikte Parser brechen.

JavaScript-Literale (ES2019+) erlauben trailing commas, die JSON-Spezifikation (RFC 8259) jedoch niemals.

Ungültig
{
  "items": [1, 2, 3,],
  "tags": ["a", "b",]
}
Korrigiert
{
  "items": [1, 2, 3],
  "tags": ["a", "b"]
}

3. Unquotierte Schlüssel

Jeder Schlüssel muss ein String in doppelten Anführungszeichen sein. { active: true } ist in JSON ungültig.

{
  active: true,
  "score": 95
}

4. Fehlende oder zusätzliche Kommas

Zwischen benachbarten Paaren sind Kommas Pflicht; doppelte Kommas führen zu Unexpected token-Fehlern.

Komma fehlt
{
  "a": 1
  "b": 2
}
Zu viele Kommas
{
  "a": 1,, "b": 2
}

5. Falsche Escape-Sequenzen

Backslashes in Pfaden müssen verdoppelt werden: \\ für jedes \. Ein einzelner Backslash verursacht Bad escaped character.

Ungültig
{ "path": "C:\Users\data" }
Korrigiert
{ "path": "C:\\Users\\data" }

6. NaN, Infinity, undefined

JSON kennt für leere Werte nur null, nicht JavaScript-spezifische Werte wie NaN oder undefined.

{ "value": NaN }

7. Kommentare

JSON unterstützt keine //- oder /* */-Kommentare. Entferne sie vor dem Parsen.

Dokumentation, VS Code JSONC und JSON5 erlauben Kommentare, sind aber kein gültiger JSON.parse-Input. Für Datenaustausch immer strikt JSON verwenden.

{
  // user profile
  "name": "Bob"
}

8. Mehrere Top-Level-Werte oder nicht geschlossene Klammern

Gültiges JSON hat genau ein Objekt oder ein Array als Wurzel. Fehlende } oder ] führen zu Unexpected end of JSON input.

9. Ungültige Zahlen

Keine führenden Nullen (007), kein Hex (0xFF), kein alleinstehender Dezimalpunkt.

10. Nicht maskierte Steuerzeichen

Zeilenumbrüche und Tabs in Strings müssen als \n und \t geschrieben werden, nicht als echte Umbrüche aus Logs.

Online ausprobieren

Füge deinen Text in das JSON-Tool ein. Bei Fehlern zeigt die Seitenleiste Meldung und Zeilennummer; der Editor hebt genau diese Zeile hervor.

Nach der Korrektur erneut formatieren oder minifizieren: Ein Erfolgsbanner bedeutet, dass das JSON gültig ist.