Drei Formate für dieselben Daten
JSON ist das, was APIs senden und JavaScript liest. YAML schreiben Menschen von Hand in Konfigurationsdateien für Docker Compose, Kubernetes, GitHub Actions oder Ansible. XML steckt nach wie vor überall: in Feeds, Rechnungen, Office-Dateien und älteren Webservices. Alle drei beschreiben dieselbe Art von Daten, nämlich Objekte, Listen, Text, Zahlen sowie true und false, daher lassen sie sich ineinander umwandeln.
Manche Details überstehen nicht jede Umwandlung. Kommentare in YAML und XML fallen weg, weil JSON keine Kommentare kennt. XML hat keine eigenen Listen oder Zahlen, deshalb werden wiederholte Elemente zu Arrays, und Zahlen werden nur erkannt, wenn du das einschaltest. Bei jeder Richtung unten steht, was mit solchen Fällen passiert.
Ein echter YAML-Parser, keine Abkürzung
YAML hat viele Regeln, an denen einfache Konverter scheitern: Blocktext mit | und >, Text mit und ohne Anführungszeichen, Anker (&name) und Aliase (*name), Merge-Keys (<<) und mehrere Dokumente in einer Datei, die jeweils mit einer Zeile aus drei Bindestrichen beginnen. Dieses Tool nutzt einen vollständigen YAML-Parser nach der Spezifikation YAML 1.2 und begrenzt das Auflösen von Aliasen, damit eine bösartige Datei deinen Browser nicht einfrieren kann.