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.
{ "server": { "port": 8080 } }server:
port: 8080Welches 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.