„Unexpected token“ ist die nutzloseste Fehlermeldung der Webentwicklung – sie sagt nur, dass irgendwo etwas nicht stimmt. In der Praxis stecken hinter fast allen JSON-Fehlern sechs Ursachen, und wer sie kennt, findet die Stelle in Sekunden. Dieser Leitfaden zeigt sie mit Beispielen, erklärt, was JSON im Unterschied zu JavaScript nicht darf, und wie man aus einer 5.000-Zeilen-API-Antwort das findet, was man braucht. Wer die typischen JSON-Fehler kennt, findet die Stelle in Sekunden.
Was JSON ist – und was nicht
JSON ist ein Datenformat mit sehr wenigen Regeln: Objekte in geschweiften Klammern, Arrays in eckigen, Schlüssel immer in doppelten Anführungszeichen, Werte sind Strings, Zahlen, true/false/null, Objekte oder Arrays. Alles, was JavaScript darüber hinaus erlaubt – Kommentare, einfache Anführungszeichen, Funktionen, undefined, abschließende Kommas – ist in JSON verboten. Genau daraus entstehen die Fehler.
Die sechs Ursachen für JSON-Fehler
- Abschließendes Komma.
{"a": 1, "b": 2,}– das Komma nach dem letzten Element ist ungültig. - Einfache Anführungszeichen.
{'name': 'Max'}– JSON kennt nur doppelte. - Schlüssel ohne Anführungszeichen.
{name: "Max"}– in JavaScript erlaubt, in JSON nicht. - Kommentare.
// Notizoder/* ... */gibt es in JSON nicht. Konfigurationsdateien, die Kommentare erlauben, sind JSON5 oder JSONC, kein JSON. - Nicht entwertete Zeichen im String. Ein Zeilenumbruch oder ein Anführungszeichen innerhalb eines Strings muss als
nbzw."geschrieben werden. - Abgeschnittene Daten. Die Antwort wurde beim Kopieren gekürzt – der Parser meldet „Unexpected end of input“. Prüfen Sie, ob die letzte Klammer da ist.
Fügen Sie den Text in den JSON-Formatierer ein: Er markiert die Zeile und Spalte des Fehlers und benennt die Ursache in Klartext.
Zahlen, die keine sind
Führende Nullen (007), Hexadezimalzahlen (0xFF), NaN und Infinity sind ungültig. Sehr große Ganzzahlen (über 2^53) verlieren in JavaScript Präzision – IDs deshalb als String übertragen.
Große Dateien lesbar machen
Eine API-Antwort mit 5.000 Zeilen liest niemand von oben nach unten. Die Baumansicht des Formatierers klappt Objekte auf und zu, die Suche findet Schlüssel überall in der Struktur, und der Pfad zu jedem Wert (data.items[3].price) lässt sich kopieren – genau das, was Sie im Code brauchen.
Formatieren vs. Minimieren
Formatiert (eingerückt) ist JSON für Menschen, minimiert (ohne Whitespace) für die Übertragung. Beide sind dieselben Daten; minimiert spart bei großen Antworten 20–40 % Bytes. In Konfigurationsdateien und Git-Repositories immer formatiert speichern – das macht Diffs lesbar.
Häufige Fragen
Warum akzeptiert mein Browser das JSON in der Konsole, aber der Server nicht?
Weil Sie in der Konsole ein JavaScript-Objektliteral eingeben, kein JSON. Der Server parst strikt.
Wie prüfe ich JSON im Terminal?
cat datei.json | python3 -m json.tool formatiert und meldet Fehler mit Position.
Ist die Reihenfolge der Schlüssel wichtig?
Laut Spezifikation nicht. Wenn Ihr Code sich darauf verlässt, ist er fragil.
Kostenlos, läuft im Browser, nichts wird hochgeladen, keine Anmeldung.
Weiterlesen
Mehr aus Entwickler- & Code-Tools.


