Daten

JSON-Syntaxfehler beheben: Die 7 häufigsten Fehler und wie Sie JSON aufräumen

API-Antworten, Konfigurationsdateien, Logs: JSON ist das Datenformat, das Entwickler am häufigsten lesen. Trotzdem kann ein einziges Komma oder Anführungszeichen einen „Unexpected token“-Fehler auslösen. So finden Sie die Ursache schnell.

Die Grundregeln

JSON (JavaScript Object Notation) ist ein Textformat, das in RFC 8259 und ECMA-404 standardisiert ist. Es stammt aus JavaScript, wird heute aber von fast jeder Sprache unterstützt. Es gibt nur sechs Werttypen: String, Zahl, Boolean (true/false), null, Array und Objekt.

Objekte listen "Schlüssel": Wert-Paare in geschweiften Klammern auf, Arrays listen Werte in eckigen Klammern auf, jeweils durch Kommas getrennt. Schlüssel müssen Strings in doppelten Anführungszeichen sein. Weil die Regeln einfach sind, sind sie streng: Was in JavaScript-Code erlaubt ist, kann in JSON ein Fehler sein.

{
  "id": 1024,
  "name": "AIBIZAP",
  "active": true,
  "tags": ["tools", "guides"],
  "owner": null
}

Sieben Fehler, die Parse-Fehler verursachen

Schauen Sie direkt vor die Position, die die Fehlermeldung nennt — fast immer ist einer dieser Punkte die Ursache. Fügen Sie das Dokument in einen JSON-Formatierer ein, wird es neu eingerückt und die fehlerhafte Zeile ist leicht zu finden.

  • Abschließende Kommas: [1, 2, 3,] ist ungültig.
  • Einfache Anführungszeichen: Verwenden Sie "name", niemals 'name'.
  • Schlüssel ohne Anführungszeichen: {name: "a"} ist ein JavaScript-Objekt, kein JSON.
  • Kommentare: Standard-JSON kennt keine // oder /* */ Kommentare.
  • Fehlende Escapes: Schreiben Sie in Strings \" für Anführungszeichen, \\ für Backslashes und \n für Zeilenumbrüche. Ein unescapeter Windows-Pfad wie C:\Users zerstört das Dokument.
  • Sonderwerte: NaN, Infinity und undefined gibt es in JSON nicht. Verwenden Sie null für fehlende Werte.
  • BOMs und unsichtbare Zeichen: Ein UTF-8-BOM am Dateianfang oder ein beim Kopieren eingeschlepptes geschütztes Leerzeichen kann schon beim ersten Zeichen scheitern.

Vorsicht bei großen Zahlen und Dezimalwerten

Der JSON-Standard begrenzt die Größe von Zahlen nicht, aber JavaScript speichert jede Zahl als 64-Bit-Gleitkommazahl. Ganzzahlen über 2^53 (9.007.199.254.740.992) lassen sich nicht exakt darstellen, sodass bei langen, als Zahl gesendeten IDs im Browser die letzten Ziffern verändert werden können.

Senden Sie solche Werte von Anfang an als String, etwa "id": "1234567890123456789". Bei Geldbeträgen gibt es ein ähnliches Problem — 0,1 + 0,2 ergibt in Gleitkommaarithmetik 0,30000000000000004 —, daher werden Beträge oft als ganzzahlige Cent-Werte oder Strings übertragen.

JSON hat keinen Datumstyp

Datumswerte werden meist entweder als ISO-8601-Strings ("2026-10-28T09:00:00Z") oder als Unix-Zeitstempel (1793178000) gesendet. Empfehlenswert ist ISO 8601 mit abschließendem Z (UTC) oder einem expliziten Offset wie +01:00, weil es lesbar und eindeutig ist.

Ein Wert ohne Zeitzone wie "2026-10-28 09:00" lässt den Empfänger raten, ob es sich um Server- oder Benutzerzeit handelt — das führt zu Fehlern wie Verschiebungen um mehrere Stunden.

Formatieren und minifizieren

Einrückungen und Zeilenumbrüche machen JSON lesbarer; das Entfernen aller Leerzeichen macht es kleiner für die Übertragung. Die Bedeutung bleibt identisch, also formatieren Sie beim Debuggen und minifizieren Sie für Übertragung oder Speicherung.

Bewahren Sie von Menschen bearbeitetes JSON wie Konfigurationsdateien formatiert in der Versionsverwaltung auf, damit Änderungen leicht zu prüfen sind. Die Reihenfolge der Schlüssel hat keine Bedeutung, aber sortierte Schlüssel machen Diffs deutlich lesbarer.

JSON in Code und Tabellen umwandeln

Zu einer Beispiel-API-Antwort braucht man oft passende Klassen in C#, Java, Python oder TypeScript. Dutzende Felder von Hand abzuschreiben führt zu Tippfehlern; der JSON-Klassengenerator leitet die Typen aus dem Beispiel ab und schreibt den Modellcode für Sie.

Um dieselben Daten in einer Datenbank zu speichern, entwirft der JSON-DDL-Generator eine CREATE-TABLE-Anweisung. Die abgeleiteten Typen beruhen nur auf den Werten Ihres Beispiels, prüfen Sie daher nullable Felder, String-Längen und Primärschlüssel, bevor Sie sie übernehmen.

Mit diesen Tools ausprobieren

Weitere Ratgeber

Alle Ratgeber