JSON Toolkit

JSON vs. JSON5 vs. JSONC

Fazit: Strikte Obermengen in der Reihenfolge: JSONC fügt Kommentare hinzu; JSON5 fügt einfache Anführungszeichen, unquotierte Schlüssel, nachfolgende Kommas und Hexzahlen hinzu. Die falsche Wahl bricht eine API, nicht Ihren Editor.

Einsteiger~4 Min. LesezeitVeröffentlicht 2026-10-30Aktualisiert 2026-10-30
Funktionsvergleich von JSON, JSON5 und JSONC

Kurz gesagt: Verwenden Sie Standard-JSON, wann immer Daten eine Systemgrenze überschreiten, und JSONC nur für lokale Konfiguration, die Menschen bearbeiten; greifen Sie zu JSON5, wenn Sie einfache Anführungszeichen, nachfolgende Kommas oder unquotierte Schlüssel brauchen, bestätigen Sie aber zuerst, dass der Loader es unterstützt.

In einer Zeile: JSONC ist JSON plus Kommentare; JSON5 ist JSON plus JavaScript-Gewohnheiten.

Funktionsmatrix

Funktion JSON JSONC JSON5
Doppelt quotierte Strings ✅ ✅ ✅
Einfach quotierte Strings ❌ ❌ ✅
Unquotierte Schlüssel ❌ ❌ ✅
//-Zeilenkommentare ❌ ✅ ✅
/* */-Blockkommentare ❌ ✅ ✅
Nachfolgende Kommas ❌ ❌ ✅
Hexzahlen 0xFF ❌ ❌ ✅
Infinity / NaN ❌ ❌ ✅
Mehrzeilige Strings ❌ ❌ ✅
Von Standardparsern lesbar ✅ ❌ ❌

Beachten Sie, dass JSONC nur Kommentare löst. Viele nehmen an, „JSON, das Kommentare erlaubt“ erlaube auch nachfolgende Kommas; tsconfig.json scheitert an einem.

Wofür jedes da ist

JSON – Austausch. APIs, Queues, JSON-Spalten in Datenbanken, Logs. Alles Maschine-zu-Maschine.

JSONC – Editor-Konfiguration. VS Code parst diese Dateien selbst, JSON.parse sieht sie also nie. Es gibt kein RFC; es ist eine von Microsoft geführte De-facto-Konvention.

JSON5 – eine nachsichtige Obermenge für Menschen. Das Ziel war „Konfiguration, die wie ein JavaScript-Objektliteral aussieht“. Am besten geeignet für .json5-Dateien, die von Build-Werkzeugen geladen werden; die breiteste Syntax und die engste Werkzeugunterstützung.

Auswahl

Situation Wahl
Request- oder Response-Bodies JSON, keine Alternative
JSON-Spalten in MySQL / PostgreSQL JSON, ihre Funktionen akzeptieren nichts anderes
Projektkonfiguration, die Erklärung braucht JSONC, wenn unterstützt, sonst YAML
Sie wollen JS-artige Lockerheit JSON5, nachdem bestätigt ist, dass der Loader es unterstützt
Nicht-Entwickler werden es bearbeiten YAML, Einrückung schlägt Klammern

Eine leichte Falle

Eine JSONC-Datei als striktes JSON zu parsen erzeugt einen Fehler, der auf den Kommentar zeigt:

SyntaxError: Unexpected token / in JSON at position 42

Prüfen Sie, bevor Sie den Kommentar löschen, ob die Datei als JSONC gedacht ist. Löschen Sie ihn, und Sie stoßen zwei Zeilen später womöglich trotzdem auf ein nachfolgendes Komma.

FAQ

Wie soll ich zwischen JSONC und JSON5 wählen?

Verwenden Sie JSONC, wenn Kommentare das Einzige sind, was Sie brauchen: Es fügt // und /* */ auf JSON hinzu, und VS Codes settings.json und tsconfig.json verwenden es. Verwenden Sie JSON5, wenn Sie auch einfache Anführungszeichen, unquotierte Schlüssel, nachfolgende Kommas, Hexzahlen oder mehrzeilige Strings wollen. Beide hängen vom Loader ab, bestätigen Sie also, dass das Werkzeug, das die Datei liest, sie unterstützt.

Warum kann eine JSONC-Datei nicht als Standard-JSON gelesen werden?

JSONC ist eine De-facto-Konvention, kein eigenes RFC, Standardparser lehnen Kommentare also ab. JSON.parse auf einer solchen Datei wirft Unexpected token / und zeigt auf den Kommentar statt auf die Daten. Nur Konfiguration, die von einem Editor oder einem dedizierten Parser gelesen wird, sollte als JSONC geschrieben werden.

Sollte ich eine JSON5-Datei an eine API senden?

Nein. APIs, JSON-Spalten in Datenbanken und Queues parsen striktes JSON, JSON5s einfache Anführungszeichen, unquotierte Schlüssel und nachfolgende Kommas werden also abgelehnt. JSON5 ist für lokale Konfiguration, die Menschen bearbeiten; konvertieren Sie sie zu Standard-JSON, bevor sie eine Systemgrenze überschreitet.

Weiterführende Literatur