json debugging syntax-error web-development javascript

Lösung von 'Unexpected token in JSON' und häufigen JSON-Parse-Fehlern

Ein umfassender Leitfaden zum Identifizieren und Beheben von JSON.parse-Fehlern wie 'Unexpected token', 'invalid JSON format', abschließenden Kommas und mehr. Lernen Sie die häufigsten Ursachen und Lösungen kennen.

Lösung von "Unexpected token in JSON" und häufigen JSON-Parse-Fehlern: Ein vollständiger Leitfaden

JSON (JavaScript Object Notation) ist das Rückgrat der modernen Webkommunikation. Egal, ob Sie eine REST-API erstellen, einen Server konfigurieren oder den Anwendungsstatus speichern, JSON ist überall. Seine strenge Syntax führt jedoch oft zu frustrierenden Fehlern wie SyntaxError: Unexpected token, JSON.parse: unexpected character oder einfach invalid JSON format.

In diesem Leitfaden werden wir die häufigsten JSON-Parsing-Fehler aufschlüsseln, erklären, warum sie auftreten, und Ihnen genau zeigen, wie Sie sie beheben können.

1. Häufige JSON-Fehlermeldungen

Wenn ein Parser (wie JSON.parse() in JavaScript) auf ungültiges JSON stößt, wird ein Fehler ausgegeben. Je nach Umgebung sehen Sie möglicherweise:

  • Browser (Chrome/V8): SyntaxError: Unexpected token ' in JSON at position 0
  • Firefox: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
  • Node.js: SyntaxError: Unexpected token ... in JSON at position ...
  • Python: json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

Die wichtigsten Informationen sind normalerweise das Zeichen, das nicht erwartet wurde, und die Position (oder Zeile/Spalte), an der es passiert ist.


2. Hauptursachen und Lösungen

2.1 Einfache Anführungszeichen statt doppelter

JSON erfordert zwingend doppelte Anführungszeichen (") sowohl für Schlüssel als auch für Zeichenfolgenwerte. Einfache Anführungszeichen (') sind in JavaScript-Objekten gültig, aber in JSON-Zeichenfolgen ungültig.

Der Fehler (single quotes in JSON):

{
  'name': 'Tool3M'
}

Die Lösung: Ersetzen Sie alle einfachen Anführungszeichen durch doppelte Anführungszeichen.

{
  "name": "Tool3M"
}

2.2 Abschließende Kommas (Trailing Commas)

Im Gegensatz zum modernen JavaScript erlaubt JSON kein Komma nach dem letzten Element in einem Objekt oder Array.

Der Fehler (trailing comma in JSON):

{
  "id": 1,
  "status": "active",
}

Die Lösung: Entfernen Sie das Komma nach der letzten Eigenschaft.

{
  "id": 1,
  "status": "active"
}

2.3 Schlüssel ohne Anführungszeichen

In JSON müssen Schlüssel immer Zeichenfolgen sein, die in doppelte Anführungszeichen eingeschlossen sind.

Der Fehler:

{
  id: 123
}

Die Lösung: Schließen Sie Schlüssel in doppelte Anführungszeichen ein.

{
  "id": 123
}

2.4 Kommentare in JSON

Der JSON-Standard unterstützt keine Kommentare (// oder /* */) (comments in JSON). Während einige Tools (wie VS Code für tsconfig.json) diese zulassen, schlägt der Standard-JSON.parse() fehl.

Der Fehler:

{
  "id": 1 // Dies ist ein Kommentar
}

Die Lösung: Entfernen Sie alle Kommentare vor dem Parsen. Wenn Sie Metadaten benötigen, verwenden Sie eine Eigenschaft wie "__comment": "Text".

2.5 Spezialwerte: NaN, Infinity und Undefined

JSON unterstützt NaN, Infinity, -Infinity oder undefined nicht. Dies sind JavaScript-spezifische Werte.

Der Fehler (NaN in JSON, Infinity in JSON):

{
  "value": NaN,
  "expired": undefined
}

Die Lösung: Verwenden Sie stattdessen null oder einen Platzhalter-String/Zahl.

{
  "value": null,
  "expired": null
}

2.6 Steuerzeichen und Zeilenumbrüche

Zeichenfolgen in JSON dürfen keine rohen Steuerzeichen (wie Tabulatoren oder tatsächliche Zeilenumbrüche) enthalten, es sei denn, sie sind escaped.

Der Fehler:

{
  "description": "Dies ist ein 
mehrzeiliger String"
}

Die Lösung: Verwenden Sie \n für Zeilenumbrüche und \t für Tabulatoren.

{
  "description": "Dies ist ein \nmehrzeiliger String"
}

3. Fortgeschrittene Fehlerbehebung

3.1 BOM (Byte Order Mark)

Manchmal sieht eine Datei perfekt aus, gibt aber dennoch einen SyntaxError an Position 0 aus. Dies wird oft durch ein verstecktes UTF-8 BOM-Zeichen am Anfang der Datei verursacht. Lösung: Speichern Sie die Datei erneut als "UTF-8 ohne BOM".

3.2 Falsch escapete Zeichen

Wenn Ihre Zeichenfolge einen Backslash (\) oder ein doppeltes Anführungszeichen (") enthält, müssen diese escaped werden.

  • Richtig: "path": "C:\\Windows\\System32"
  • Richtig: "quote": "Er sagte \"Hallo\""

4. Präventionsmaßnahmen

  1. Verwenden Sie einen Linter: Verwenden Sie Tools wie ESLint mit dem jsonc-parser oder die integrierte JSON-Validierung von VS Code.
  2. Automatische Formatierung: Lassen Sie Ihr JSON immer durch einen Formatierer laufen, bevor Sie es in einer Konfigurationsdatei speichern.
  3. Schema-Validierung: Verwenden Sie JSON Schema, um die Struktur Ihrer Daten zu definieren und sie programmatisch zu validieren.
  4. Try-Catch: Wenn Sie dynamische Daten parsen, schließen Sie JSON.parse() immer in einen try...catch-Block ein, um Fehler elegant zu behandeln.
try {
  const data = JSON.parse(userInput);
} catch (e) {
  console.error("Fehler beim Parsen von JSON:", e.message);
  // Dem Benutzer eine freundliche Fehlermeldung anzeigen
}

5. FAQ: Häufig gestellte Fragen

F: Warum erhalte ich "Unexpected token < in JSON at position 0"?

A: Dies bedeutet fast immer, dass Ihr Code JSON erwartet hat, aber HTML erhalten hat. Dies passiert normalerweise, wenn ein API-Aufruf fehlschlägt und der Server eine HTML-Fehlerseite (wie eine 404- oder 500-Seite) anstelle der erwarteten JSON-Antwort zurückgibt.

F: Kann ich Hexadezimalzahlen in JSON verwenden?

A: Nein. JSON unterstützt nur Standard-Dezimalzahlen. 0xFF verursacht einen Parse-Fehler (JSON parse error). Verwenden Sie stattdessen 255.

F: Wie gehe ich mit großen JSON-Dateien um, die meinen Parser zum Absturz bringen?

A: Verwenden Sie für sehr große Dateien einen "Streaming"-Parser wie JSONStream (Node.js) oder ijson (Python), der die Datei Stück für Stück verarbeitet, anstatt sie komplett in den Speicher zu laden.


6. Schnelltest-Tool

Wenn Sie Schwierigkeiten haben, das eine fehlende Komma oder das falsch gesetzte Anführungszeichen zu finden, verwenden Sie unseren JSON-Formatierer & Validator. Er wird:

  • Syntaxfehler sofort hervorheben.
  • Häufige Probleme wie einfache Anführungszeichen oder abschließende Kommas beheben.
  • Ihr JSON formatieren, um es für Menschen lesbar zu machen.

Verwandte Fehler

  • Lösung von 'invalid base64 string' Fehlern
  • So beheben Sie 'malformed URL' in JavaScript
  • Grundlegendes zu YAML-Einrückungsfehlern