Fehler beim Parsen von JSON? Die Meldung „Unexpected token“ taucht auf, doch der eigentliche Grund ist meist ganz woanders. Statt das JSON zu hinterfragen, sollten Entwickler zunächst die API-Antwort oder ihre Verarbeitungslogik prüfen. Dieser Artikel erklärt die häufigsten Ursachen und zeigt, wie sich typische Fallstricke vermeiden lassen.
Warum „Unexpected token <“ fast immer HTML bedeutet
Die mit Abstand häufigste Ursache für diesen Fehler ist simpel: Die API liefert keine JSON-Daten, sondern eine HTML-Seite zurück. Das passiert etwa bei einem 404-Fehler, einer Weiterleitung zur Login-Seite oder einem Cloudflare-Sicherheitscheck. Der Browser oder die Anwendung versucht dann, diesen HTML-Code als JSON zu interpretieren – und scheitert prompt.
Ein einfacher Test mit der Konsole zeigt schnell, woran es liegt:
const antwort = await fetch(url);
const text = await antwort.text();
console.log(text.substring(0, 200));
// Ausgabe: <!DOCTYPE html>...Die Lösung liegt nicht in der JSON-Verarbeitung, sondern in der Anfrage selbst. Mögliche Ursachen:
- Falsche URL oder Endpunkt
- Fehlende Authentifizierung
- Abgelaufener API-Schlüssel
- Serverprobleme oder falsche Routing-Konfiguration
Hier hilft nur: Die Anfrage überprüfen, mit einem Tool wie Postman testen oder die Server-Logs durchsuchen.
„Unexpected token o at position 1“ – das Double-Parse-Problem
Dieser Fehler tritt auf, wenn Entwickler versehentlich JSON zweimal parsen. Der Buchstabe „o“ stammt aus der String-Repräsentation eines Objekts – [object Object]. Der Fehler entsteht, wenn die Antwort bereits als Objekt vorliegt, aber trotzdem noch einmal mit JSON.parse() verarbeitet wird.
Ein typisches Beispiel:
// Falsch: Doppelter Parse
const daten = await fetch(url)
.then(response => response.json()) // Liefert bereits ein Objekt
.then(parsed => JSON.parse(parsed)); // Zweiter Parse → Fehler!Die Lösung ist einfach: Die Antwort wird nur einmal verarbeitet. Entweder mit:
const daten = await fetch(url).then(response => response.json());oder manuell:
const daten = JSON.parse(await (await fetch(url)).text());Wann ist JSON wirklich kaputt?
Nicht jeder „Unexpected token“-Fehler liegt an API-Problemen oder falscher Verarbeitung. Manchmal ist das JSON tatsächlich fehlerhaft. Die häufigsten Ursachen:
- Nachkommastriche:
{"key": 1,}(JSON erlaubt keine abschließenden Kommas) - Einfache Anführungszeichen:
{"key": 'wert'}(nur doppelte Anführungszeichen sind gültig) - Ungequotete Schlüssel:
{key: "wert"}(Schlüssel müssen in Anführungszeichen stehen) - Kommentare:
{"key": "wert"} // Kommentar(JSON unterstützt keine Kommentare) - Python-spezifische Werte:
{"key": True}oder{"key": None}(JSON verwendettrueundnull) - Unvollständige Daten: Abgeschnittene JSON-Antworten durch Netzwerkprobleme
In solchen Fällen hilft ein JSON-Validator oder ein Reparatur-Tool. Viele Editoren bieten integrierte Validatoren an, oder man nutzt Online-Tools wie den JSONLint-Validator.
Schnelle Diagnose und Behebung
Um den Fehler schnell einzugrenzen, empfiehlt sich ein systematisches Vorgehen:
- Fehlermeldung analysieren:
- Enthält die Meldung ein
<? → API liefert HTML. - Steht dort ein
oan Position 1? → Doppelter Parse. - Sonst: Das JSON selbst ist fehlerhaft.
- API-Antwort prüfen:
const antwort = await fetch(url);
const text = await antwort.text();
console.log(text); // Direkte Ausgabe der Rohdaten- JSON reparieren oder validieren:
- Für einfache Fehler wie Nachkommastriche oder einfache Anführungszeichen eignen sich Tools wie JSON5 oder JSON Repair.
- Für eine schnelle Browser-Überprüfung helfen Online-Tools wie der JSON Viewer, die Fehler markieren und Lösungen vorschlagen.
- Code überarbeiten:
- Fehlerhafte Anfragen korrigieren.
- Doppel-Parsing vermeiden.
- JSON vor dem Parsen validieren, besonders bei dynamischen Daten.
Fazit: Fehlerquelle liegt selten im JSON selbst
Die Fehlermeldung „Unexpected token“ ist ein häufiger Stolperstein für Entwickler, doch in den meisten Fällen steckt das Problem nicht im JSON, sondern in der API-Antwort oder der Verarbeitungslogik. Ein systematisches Vorgehen hilft, die Ursache schnell zu finden und zu beheben.
Bevor man also stundenlang nach einem fehlenden Komma sucht, sollte man zunächst die API-Antwort prüfen und sicherstellen, dass die Daten tatsächlich als JSON vorliegen. Mit den richtigen Tools und einer klaren Fehleranalyse lässt sich die meisten Probleme in wenigen Minuten lösen – und die Produktivität bleibt erhalten.
KI-Zusammenfassung
JSON parse ederken 'Beklenmeyen token' hatasıyla mı karşılaşıyorsunuz? Genellikle sorun JSON değil, yanıtın HTML olması ya da verinin iki kez parse edilmesidir. Hataların nedenlerini ve çözümlerini öğrenin.