YAML zu JSON konvertieren (und Einrückungsfehler vermeiden)

Seit YAML 1.2 ist jedes JSON-Dokument gültiges YAML. Konvertiere YAML-Konfigurationen zu JSON und achte auf Einrückungs- und Typinferenz-Fallen.

YAML und JSON sind verwandt

YAML 1.2 ist eine strikte Obermenge von JSON, jedes JSON-Dokument ist also bereits gültiges YAML. Eine YAML-zu-JSON-Konvertierung bedeutet vor allem, eine einrückungsbasierte Struktur in Klammern zu übersetzen.

Einrückungsregeln

YAML verbietet Tabs zur Einrückung — nimm Leerzeichen und halte gleichrangige Schlüssel auf derselben Tiefe. Ein verirrter Tab oder ein verrutschter Schlüssel ist der häufigste YAML-Parsefehler.

Das Norwegen-Problem

Unquoted NO, yes, on und off können von manchen Parsern als Booleans gelesen werden, dadurch wird der Ländercode NO zu false. Setze solche Werte in Anführungszeichen, damit sie Strings bleiben.

Sicher konvertieren

Validiere das YAML zuerst, dann konvertiere. Setze mehrdeutige Skalare in Anführungszeichen und prüfe, dass Zahlen, Daten und Werte mit führender Null den erwarteten Typ behalten.

Mehrdokument-YAML-Streams

Eine YAML-Datei kann mehrere Dokumente enthalten, getrennt durch '---'. JSON hat dafür kein Äquivalent — konvertiere jedes Dokument einzeln und packe sie in ein JSON-Array, wenn ein Downstream-Tool alle auf einmal braucht. Kubernetes-Manifeste sind der häufigste Fall.

Anchors und Aliases

Der & Anchor und der * Alias in YAML erlauben, einen Knoten per Referenz wiederzuverwenden — JSON hat keine Aliases. Ein sicherer Konverter ersetzt jeden Alias durch eine Kopie des Anchor-Werts, was das Dokument aufbläht. Vorsicht: ein Rück-Roundtrip nach YAML verliert die ursprüngliche Verlinkung.

Wo YAML an Genauigkeit verliert

Kommentare, Tag-Annotationen wie !!binary, Custom Tags, der Unterschied zwischen Block- und Flow-Stil sowie die Schlüsselreihenfolge gehen verloren, wenn YAML zu JSON wird. Für reinen Datenaustausch ist das ok; für handgepflegte Konfigurationen sollte YAML die Quelle der Wahrheit bleiben.