JSON-zu-YAML-Konverter
Wandle JSON in YAML und YAML in JSON um.
Über dieses Tool
Füge JSON oder YAML ein und erhalte das jeweils andere zurück. Die Richtung wird automatisch erkannt, und Parse-Fehler zeigen auf die fehlerhafte Zeile. Praktisch für Kubernetes-Manifeste, Docker-Compose-Dateien und CI-Konfigurationen.
So verwendest du es
- Füge JSON oder YAML in das Eingabefeld ein.
- Lass die Richtung auf Erkennen oder erzwinge JSON zu YAML bzw. YAML zu JSON.
- Wähle 2 oder 4 Leerzeichen Einrückung.
- Kopiere die Ausgabe oder klicke auf Ausgabe als Eingabe verwenden, um sie zurückzuwandeln.
Fragen
- Ist YAML eine Obermenge von JSON?
- Praktisch ja: Seit YAML 1.2 ist fast jedes gültige JSON-Dokument auch gültiges YAML. Umgekehrt gilt das nicht, denn YAML hat Kommentare, Anker und mehrzeilige Strings, die JSON nicht ausdrücken kann.
- Was passiert mit YAML-Kommentaren beim Umwandeln in JSON?
- Sie werden verworfen, weil JSON keine Kommentare kennt. Behalte die YAML-Datei als maßgebliche Quelle, wenn die Kommentare wichtig sind.
- Kann ich eine Datei mit mehreren durch --- getrennten YAML-Dokumenten umwandeln?
- Ja. Jedes Dokument wird zu einem Element eines JSON-Arrays, und die Statuszeile zeigt, wie viele Dokumente gefunden wurden.
- Warum wird „no“ zu false?
- Ältere YAML-1.1-Parser behandeln Wörter wie yes, no, on und off als Booleans. Dieses Tool nutzt die Regeln von YAML 1.2, bei denen nur true und false Booleans sind, aber setze solche Werte in Anführungszeichen, wenn andere Tools die Datei lesen.
- Werden YAML-Datumswerte in JSON-Datumswerte umgewandelt?
- JSON hat keinen Datumstyp, daher bleiben Werte wie 2026-01-12 oder 2026-01-12T10:00:00Z einfache Strings – genau das erwarten die meisten Programme. Manche YAML-1.1-Parser wie PyYAML machen aus denselben Werten Datumsobjekte, das Ergebnis beim Laden der Datei kann sich also je nach Tool unterscheiden.
- Warum wird ein Dateimodus wie 0755 zu 755?
- Nach den Regeln von YAML 1.2 bedeutet eine führende Null nicht oktal, 0755 ist also die Dezimalzahl 755. Oktal braucht das Präfix 0o: 0o755 wird zu 493. Ältere YAML-1.1-Tools lesen 0755 als Oktalzahl, setze Dateimodi also in Anführungszeichen, wie in mode: "0755", wenn es auf das lesende Tool ankommt.
- Warum stehen manche Strings in der YAML-Ausgabe in Anführungszeichen?
- Strings, die beim Zurücklesen als anderer Typ interpretiert würden, bekommen Anführungszeichen, damit der Wert einen Roundtrip übersteht. Der JSON-String "true" wird in YAML zu "true", nicht zum Boolean true, und dasselbe gilt für "123", "null", "1.10" und Text mit einem Doppelpunkt samt folgendem Leerzeichen. Gewöhnliche Strings bleiben ohne Anführungszeichen.
JSON vs. YAML: Wann nimmt man was?
JSON und YAML beschreiben dieselben Daten: Objekte, Arrays, Strings, Zahlen, Booleans und null. JSON ist streng und schnell zu parsen und damit Standard für APIs, package.json und Daten, die zwischen Programmen ausgetauscht werden. YAML ist für Menschen gedacht, die Dateien von Hand bearbeiten: wenige Klammern oder Anführungszeichen, Kommentare mit # und mehrzeilige Strings. Deshalb sind Kubernetes-Manifeste, Docker-Compose-Dateien, GitHub-Actions-Workflows und Ansible-Playbooks in YAML geschrieben.
Eine praktische Faustregel: Schreibt ein Programm eine Datei und liest ein anderes sie, nimm JSON. Pflegt ein Mensch die Datei, ist YAML leichter zu lesen und zu reviewen. Viele Tools akzeptieren beides, auch kubectl apply nimmt jedes der beiden Formate. Ein JSON-zu-YAML-Konverter ist praktisch, wenn eine CLI oder API dir JSON liefert, etwa kubectl get deployment web -o json, und du eine lesbare YAML-Kopie in Git ablegen willst.
YAML-Einrückung und Parse-Fehler beheben
YAML zeigt die Struktur über Einrückung, deshalb sind die meisten Parse-Fehler Leerraum-Probleme. Tabs sind zur Einrückung überhaupt nicht erlaubt, und der Parser meldet „Tabs are not allowed as indentation“. Die Einträge einer Liste und die Schlüssel einer Map müssen in derselben Spalte beginnen, und ein verschachtelter Wert muss weiter eingerückt sein als sein Schlüssel. Die Fehlermeldung nennt Zeile und Spalte, an der das Parsen abgebrochen ist – meist genau beim eigentlichen Fehler oder kurz dahinter.
Ein Doppelpunkt mit folgendem Leerzeichen in einem Wert ohne Anführungszeichen ist ein weiterer klassischer YAML-Fehler. url: http://example.com ist in Ordnung, aber title: Note: read this scheitert, weil der zweite Doppelpunkt ein verschachteltes Mapping beginnt. Setze solche Werte in Anführungszeichen, wie in title: "Note: read this". Auch Werte, die mit @ oder einem Backtick beginnen, brauchen Anführungszeichen, ebenso Strings, die wie Zahlen aussehen, etwa version: "1.10", das sonst zur Zahl 1.1 würde.
Was passiert mit YAML-Ankern bei der Umwandlung in JSON?
In YAML kannst du einen Block einmal mit einem Anker wie &defaults definieren und ihn an anderer Stelle mit dem Alias *defaults wiederverwenden. JSON hat nichts Vergleichbares, daher wird bei der Umwandlung von YAML in JSON jeder Alias durch eine vollständige Kopie des verankerten Werts ersetzt. Das JSON ist korrekt, aber länger, und die Verbindung zwischen den Kopien geht verloren. Merge-Keys in der Form <<: *defaults gehören nicht zu YAML 1.2 und bleiben im JSON als Schlüssel namens << stehen.
Bevor du eine konvertierte Datei committest, prüfe den Roundtrip. Klick auf „Ausgabe als Eingabe verwenden“, um das Ergebnis zurückzuwandeln, und vergleiche es dann im Textvergleich mit dem Original. Die Werte sollten unverändert bleiben, die Darstellung kann sich aber unterscheiden: Kommentare verschwinden, Anker werden aufgelöst, und die Anführungszeichen können sich ändern. Kubernetes und die meisten YAML-Styleguides rücken mit 2 Leerzeichen ein, was hier die Voreinstellung ist; 4 Leerzeichen gibt es für Teams, die das bevorzugen.
Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden