JSON-Parse-Fehler «Expected Property Name» beheben

Dieser Fehler bedeutet meist, dass der Parser auf einen Objektschlüssel trifft, der kein gültiges JSON ist: ein unanführter Schlüssel, ein Kommentar, ein nachgestelltes Komma oder JavaScript-Syntax in striktem JSON.

Was der Fehler bedeutet

JSON-Objektmember müssen immer mit einem in doppelten Anführungszeichen quotierten Property-Namen beginnen. Wenn ein Parser «expected property name» oder «expected property name or '}'» sagt, steht er meistens direkt nach einer öffnenden Klammer oder Komma und erwartet einen Schlüssel wie "name". Sieht er stattdessen name, // Kommentar, /* Kommentar */ oder eine schließende Klammer nach einem Trailing Comma, bricht er ab — diese Muster gehören zu JavaScript, nicht zu striktem JSON.

Häufigste Ursachen

Am schnellsten debuggst du, indem du das Zeichen an der gemeldeten Zeile und Spalte ansiehst und dann das vorangehende Token. Die meisten Meldungen kommen aus einem von vier kleinen Fehlern.

  • Schlüssel ohne Anführungszeichen, z. B. { name: "Ada" }
  • Schlüssel oder Strings mit einfachen Anführungszeichen, z. B. { 'name': 'Ada' }
  • Aus JavaScript- oder JSONC-Dateien kopierte Kommentare
  • Ein nachgestelltes Komma vor } oder ]

Fehlerhaftes Beispiel

{ name: 'Ada', active: true, // copied from a JS object }

Korrigiertes JSON

{ "name": "Ada", "active": true }

Reparatur-Checkliste

Setze jeden Schlüssel in doppelte Anführungszeichen, wandle Strings mit einfachen in doppelte Anführungszeichen, entferne Kommentare und nachgestellte Kommas und sorge dafür, dass Booleans und null kleingeschrieben sind. Danach eine strikte Validierung laufen lassen, bevor du den Wert in eine Konfiguration speicherst, an eine API sendest oder in ein Datenbankmigrationsskript einfügst.

Wann automatische Reparatur sicher ist

Automatische Reparatur ist sicher für Syntaxbereinigung, wenn die Absicht klar ist. Sie ersetzt keine fachliche Validierung. Bei mehrdeutigen Schlüsselnamen, Zahlen, Daten oder Enums repariere zuerst die Syntax und vergleiche die Ausgabe dann mit dem Quellsystem oder dem API-Schema.