JSON-zu-YAML-Konverter
Wandle JSON in sauberes, gut lesbares YAML für Kubernetes, Docker Compose, GitHub Actions oder Ansible um, mit voller Kontrolle über Einrückung, Stil und Anführungszeichen.
Läuft im BrowserOhne AnmeldungKein Upload
Anleitung: JSON zu YAML
- Füge JSON in das linke Feld ein oder öffne eine
.json-Datei. - Das YAML erscheint beim Tippen rechts.
- Wähle die Einrückung (2 oder 4 Leerzeichen) und den Stil: Block (ein Schlüssel pro Zeile) oder Flow (
{a: 1}/[x, y]) ab einer bestimmten Verschachtelungsebene. - Wähle einen Stil für Anführungszeichen und aktiviere Schlüssel sortieren, wenn du eine alphabetische Reihenfolge willst.
- Kopiere oder lade das YAML herunter. Ungültiges JSON wird mit Zeile, Spalte und wahrscheinlicher Ursache gemeldet.
Warum JSON in YAML umwandeln?
JSON ist ideal für Maschinen und APIs, YAML lässt sich von Menschen aber leichter lesen und bearbeiten: keine geschweiften Klammern, keine Pflicht-Anführungszeichen und Unterstützung für Kommentare. Die meisten Infrastruktur-Tools, darunter Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI und Ansible, werden in YAML konfiguriert, während die Ausgangsdaten (API-Ausgaben, kubectl get -o json, Terraform-State) oft JSON sind.
Block- vs. Flow-Stil
Der Block-Stil setzt jeden Schlüssel und jedes Listenelement in eine eigene Zeile und ist die übliche Wahl für Konfigurationsdateien. Der Flow-Stil verwendet wie JSON Inline-{} und -[] und hält kurze Strukturen auf der untersten Ebene kompakt. „Flow ab Ebene 2“ belässt die obersten zwei Ebenen im Block-Stil und schreibt alles Tiefere inline, was sich gut für lange Listen kleiner Objekte wie Ports oder Umgebungsvariablen eignet.
Sicheres Quoting
Strings, die ein YAML-Parser falsch lesen könnte, werden automatisch in Anführungszeichen gesetzt: Werte wie 'no', 'on', '1.0', 'null', Strings mit führendem * oder & und Strings, die : enthalten. Wähle Immer einfache oder Immer doppelte, wenn dein Styleguide verlangt, dass jeder String gequotet wird.
Stolperfallen zwischen YAML 1.1 und 1.2
Dieser Konverter folgt YAML 1.2, der aktuellen Spezifikation. Viele ältere Tools (PyYAML, Rubys Psych, manche Kubernetes- und Ansible-Versionen) lesen noch YAML 1.1, wo andere Regeln gelten:
- Das Norwegen-Problem: In YAML 1.1 bedeutet
country: noden Wertfalse, wodurch Norwegens LändercodeNOverschwindet. Dasselbe gilt füryes,on,off,yundn. YAML 1.2 behandelt nurtrueundfalseals Booleans. - Oktalzahlen:
0755ist in 1.1 oktal, in 1.2 aber eine normale Dezimalzahl; dort schreibt man0o755. Setze Dateiberechtigungen sicherheitshalber in Anführungszeichen. - Sexagesimalzahlen: In 1.1 kann
22:30als die Zahl 1350 geparst werden. Setze Uhrzeiten und Port-Mappings wie"8080:80"in Anführungszeichen.
Die Richtung JSON → YAML setzt mehrdeutige Strings ('no', 'on', 'y') automatisch in Anführungszeichen, sodass das erzeugte YAML in beiden Versionen gleich gelesen wird.
Häufig gestellte Fragen
Ist die Konvertierung verlustfrei?
Warum stehen manche Strings in Anführungszeichen und andere nicht?
'yes', '123' oder Strings mit Sonderzeichen. Alles andere bleibt der Lesbarkeit halber ohne.Kann ich der Ausgabe Kommentare hinzufügen?
# comments ins YAML schreiben.