YAML & JSON: Welches Config-Format passt und wie du sicher konvertierst

2025-05-20

YAML 1.2 zielt auf JSON-Kompatibilität ab: gültiges JSON sollte auch als YAML parsebar sein. Ops-Konfigurationen setzen oft auf YAML, Anwendungen auf JSON. Beim Konvertieren lauern jedoch typische Fallen.

Kernunterschiede

JSON: keine Kommentare, Schlüssel mit doppelten Anführungszeichen, eine kanonische Form. YAML: Einrückung, # Kommentare und flexible Skalare.

JSON
{ "server": { "port": 8080 } }
YAML
server:
  port: 8080

Welches Format für Config-Dateien?

Manuell gepflegte Ops-Konfigurationen (K8s, Docker, CI) eher YAML. Generierte Manifeste und App-Interchange eher JSON.

Konvertierungsfallen

yes/no als Booleans, Versionsstrings als Zahlen, fehlende Anchors in JSON und ungültige Tabs in YAML sind häufige Probleme.

CLI-Konvertierung

yq, js-yaml, PyYAML nutzen und nach der Konvertierung immer JSON.parse ausführen, um stille Typänderungen zu erkennen.

Praktische Kubernetes-Tipps

YAML im Repository belassen und nur bei JSON-only-Consumern in CI umwandeln. Große JSON-Manifeste nicht von Hand pflegen.

Zusammenfassung

Menschen -> YAML; Maschinen -> JSON. Tool-Versionen fixieren und jede Transformation validieren.