Technik-Hilfe
Häufige JSON-Fehler: Trailing Commas, Anführungszeichen und Unexpected token
Ungültiges JSON beheben: schließende Kommas, einfache Anführungszeichen, Schlüssel ohne Quotes und Unexpected token. Warum JSON.parse scheitert.
Die meisten JSON-Fehler kommen von strenger Syntax: Trailing Commas, einfache Anführungszeichen, unquoted Keys, fehlende Kommas, unpassende Klammern, ungültige Escapes oder Kommentare.
JSON sieht aus wie ein JavaScript-Objekt, ist aber strenger. Eigenschaftsnamen und Strings brauchen doppelte Anführungszeichen.
Bei „Unexpected token“ kann das gemeldete Zeichen die Stelle sein, an der das Parsen stoppte—nicht unbedingt der Ursprung des Fehlers.
Ihr JSON gilt als ungültig. Meist ist das ein kleines Syntaxdetail, kein kaputtes Format. Die sieben Fehler unten verursachen die meisten Unexpected-token-Meldungen.
Warum bricht JSON so leicht?
JSON ist ein Datenformat mit strenger Syntax. Ein JavaScript-Objektliteral kann ähnlich aussehen und trotzdem ungültiges JSON sein. In Standard-JSON brauchen Namen und Strings doppelte Anführungszeichen, Trailing Commas sind verboten, Kommentare gehören nicht zum Format.
1. Trailing Commas
Das Extra-Komma nach der letzten Eigenschaft ist das Problem. Standard-JSON erlaubt es nicht.
Ungültig
{
"name": "Alex",
"age": 30,
}
Gültig
{
"name": "Alex",
"age": 30
}
Dieselbe Regel gilt für Arrays. Das Komma nach dem letzten Element entfernen.
Ungültig
[
"red",
"green",
]
Gültig
[
"red",
"green"
]
2. Einfache statt doppelte Anführungszeichen
JavaScript akzeptiert oft einfache Anführungszeichen. JSON nicht. Eigenschaftsnamen und Stringwerte brauchen doppelte Anführungszeichen.
Ungültig
{
'name': 'Alex'
}
Gültig
{
"name": "Alex"
}
3. Eigenschaftsnamen ohne Anführungszeichen
In JavaScript können Sie name manchmal ohne Quotes schreiben. In JSON muss jeder Eigenschaftsname ein String in doppelten Anführungszeichen sein.
Ungültig
{
name: "Alex",
age: 30
}
Gültig
{
"name": "Alex",
"age": 30
}
4. Fehlende Kommas zwischen Werten
Zwischen Eigenschaften und Array-Elementen braucht es ein Komma. Der Parser kann Unexpected token am nächsten Quote oder der Klammer melden, nicht am fehlenden Komma.
Ungültig
{
"name": "Alex"
"age": 30
}
Gültig
{
"name": "Alex",
"age": 30
}
5. Fehlende oder überzählige Klammern
Objekte nutzen { }. Arrays nutzen [ ]. Verschachteltes JSON scheitert, wenn ein ] fehlt, ein } zu viel ist oder beide vertauscht sind. Öffnende und schließende Paare zählen.
Ungültig
{
"items": [1, 2
}
Gültig
{
"items": [1, 2]
}
6. Ungültige Escape-Sequenzen
In einem JSON-String beginnt der Backslash ein Escape. Sequenzen wie ", \ und \n sind gültig. Ein Windows-Pfad als C:\Users ist es nicht: \U ist kein legales JSON-Escape. Backslashes verdoppeln, sonst stoppt der Parser an diesem Zeichen.
Ungültig
{"file":"C:\Users\Alex"}
Gültig
{"file":"C:\\Users\\Alex"}
7. Kommentare in JSON
Standard-JSON hat keine Kommentare. Manche Config-Tools akzeptieren // oder /* */ (JSONC, JSON5 und Ähnliches). Das ist kein Standard-JSON, und JSON.parse lehnt es ab.
Ungültig
{
// user name
"name": "Alex"
}
Was bedeutet „Unexpected token“?
Der Parser hat an dieser Position ein unerlaubtes Zeichen gefunden. Die gemeldete Stelle ist, wo das Lesen stoppte. Fehlt früher ein Komma, zeigt der Fehler oft auf das Quote der nächsten Eigenschaft. Der Wortlaut hängt vom Runtime ab; nicht jeder Browser schreibt denselben Satz.
Was bedeutet „Unexpected end of JSON input“?
Der Text endete, bevor der Wert vollständig war. Typisch: fehlendes } oder ], abgeschnittener Input, leerer Body oder eine gekappte API-Antwort. Es ist nicht ein einziger Bug.
Warum scheitert JSON.parse()?
JSON.parse() akzeptiert nur gültigen JSON-Text. Das gelingt:
const text = '{"name":"Alex"}';
const data = JSON.parse(text);
Das scheitert, weil einfache Anführungszeichen kein JSON sind:
const text = "{'name':'Alex'}";
JSON.parse(text);
Die genaue Meldung hängt vom JavaScript-Runtime ab. Als Hinweis nutzen, dann Kommas, Quotes und Klammern nahe dieser Position prüfen.
Ein JavaScript-Objektliteral kann wie { name: 'Alex' } aussehen. Gültiges JSON muss wie { "name": "Alex" } aussehen: Namen und Strings in doppelten Anführungszeichen, kein Trailing Comma, keine Kommentare.
- JSON-Text
- Parser liest Tokens
- Gültige Daten oder Unexpected token
JSON-Fehler schnell finden
In dieser Reihenfolge vorgehen. Nicht mit dem Umschreiben der ganzen Datei beginnen.
- JSON durch einen Validator schicken.
- Den ersten gemeldeten Fehler lesen.
- Etwas vor der gemeldeten Position schauen.
- Kommas prüfen, vor allem Trailing und fehlende.
- Anführungszeichen prüfen: nur doppelte.
- { } und [ ] zuordnen.
- Backslash-Escapes in Strings prüfen.
- Kommentare entfernen, wenn striktes JSON nötig ist.
Schnelle Übersicht der üblichen Fixes:
| Problem | Fix |
|---|---|
| Trailing Comma | Das Komma nach dem letzten Element löschen. |
| Einfache Anführungszeichen | Doppelte Anführungszeichen für Namen und Strings. |
| Key ohne Quotes | Den Eigenschaftsnamen in doppelte Anführungszeichen setzen. |
| Fehlendes Komma | Ein Komma zwischen Eigenschaften oder Array-Elementen setzen. |
| Fehlende Klammer | Jedes { }- und [ ]-Paar schließen. |
| Ungültiges Escape | Ein legales Escape nutzen oder Backslashes in Pfaden verdoppeln. |
| Kommentar | // und /* */ für Standard-JSON entfernen. |
JSON im Browser prüfen und formatieren
NEXNARA JSON formatieren und vergleichen kann JSON auf diesem Gerät prüfen.
Sie können validieren, mit 2 Leerzeichen, 4 Leerzeichen oder Tabs formatieren, minifizieren, zwei Dokumente vergleichen (JSON Diff) und eine .json-Datei öffnen. Das Parsen nutzt JSON.parse im Browser, nicht eval.
Dokumente über 5 MB können langsam wirken. Text über 15 MB wird im Browser nicht verarbeitet, damit die Seite reagiert bleibt.
Die JSON-Verarbeitung selbst läuft in Ihrem Browser. Dieses Tool sendet den Text nicht an einen NEXNARA-Server. Werbung und andere Site-Funktionen nutzen weiter das Netz; das ist von der Verarbeitung getrennt.
Ungültiges JSON prüfen? Öffnen Sie JSON formatieren und vergleichen und fügen Sie den Text ein.
FAQ
Warum sagt mein JSON „Unexpected token“?
Der Parser hat an dieser Stelle ein unerlaubtes Zeichen gefunden. Der eigentliche Fehler—oft ein fehlendes Komma oder ein einfaches Anführungszeichen—kann direkt davor liegen.
Sind Trailing Commas in JSON erlaubt?
Nein. Standard-JSON erlaubt kein Komma nach der letzten Eigenschaft oder dem letzten Array-Element. JavaScript-Objektliterale tun das oft.
Darf JSON einfache Anführungszeichen nutzen?
Nein. Eigenschaftsnamen und Strings brauchen doppelte Anführungszeichen.
Darf JSON Kommentare enthalten?
Nicht in Standard-JSON. Manche Tools akzeptieren JSONC oder JSON5 mit Kommentaren; JSON.parse lehnt sie trotzdem ab.
Warum scheitert JSON.parse()?
Der String ist kein gültiges JSON. Typisch: Trailing Commas, einfache Anführungszeichen, Keys ohne Quotes, Kommentare oder ein abgeschnittener Wert. Die genaue Meldung hängt vom Runtime ab.
Wie prüfe ich, ob JSON gültig ist?
In einen Validator wie JSON formatieren und vergleichen einfügen oder JSON.parse in einer Konsole aufrufen. Wirft das Parsen, ist der Text kein gültiges JSON.