Nachgestellte Kommas in JSON beheben

Ein nachgestelltes Komma nach der letzten Objekt-Property oder dem letzten Array-Element ist in einigen JavaScript-Kontexten erlaubt, aber kein gültiges JSON.

Warum der Fehler entsteht

JavaScript-Objektliterale erlauben oft ein abschließendes Komma, JSON verlangt aber, dass auf das letzte Element direkt die schließende Klammer folgt.

Fehlerhaftes Beispiel

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

Korrigiertes JSON

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

Woher nachgestellte Kommas kommen

Meistens, wenn jemand eine Konfiguration von Hand bearbeitet, den letzten Eintrag auskommentiert oder JavaScript-/TypeScript-Code kopiert. Template-Engines und Code-Generatoren produzieren das auch, wenn eine Schleife unkonditional ein Komma anhängt, ohne den letzten Index zu beachten.

Warum manche Parser sie akzeptieren und JSON nicht

JavaScript-Objektliterale, JSON5, JSONC, YAML und die meisten Literal-Syntaxen anderer Sprachen erlauben das nachgestellte Komma, weil es Diffs sauberer macht. RFC-8259-JSON tut das absichtlich nicht — strikte Parser wie JSON.parse, Go's encoding/json oder Pythons json-Modul lehnen ab.

Nachgestellte Kommas vor der Produktion erkennen

Lint Config-Dateien in CI mit einem strikten JSON-Parser (jq, python -m json.tool oder node -e 'JSON.parse(...)'). In TypeScript-Repos setze "trailingComma": "none" in Prettier für .json-Dateien, damit der Formatter keine einbaut.

Wenn das nachgestellte Komma nicht der echte Bug ist

Kommt ein Payload mit Trailing Comma von einer API oder einer JSON-erzeugenden Library, steckt der Fehler in der vorgelagerten Serialisierung, nicht beim Konsumenten. Das lokale Reparieren versteckt einen Generator-Bug, der beim nächsten Call wiederkommt — fix den Producer.

FAQ

F: Wird JSON.parse jemals nachgestellte Kommas akzeptieren? A: Nein — der strikte Modus ist der Standard. F: Ist JSON5 ein sicherer Ersatz? A: Nur für handgepflegte Konfiguration; niemals für Wire-Protokolle. F: Kann das Auto-Repair-Tool nur nachgestellte Kommas entfernen? A: Ja, einfügen — es entfernt sie zusammen mit anderen gängigen Syntaxfehlern.