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 …
{
name: "Alice",
"age": 30
}{
"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.
{
"items": [1, 2, 3,],
"tags": ["a", "b",]
}{
"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.
{
"a": 1
"b": 2
}{
"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.
{ "path": "C:\Users\data" }{ "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.