YAML-zu-JSON-Konverter
Füge YAML ein (Kubernetes-Manifeste, Docker Compose, CI-Konfigurationen) und erhalte sofort sauberes JSON. Fehler zeigen die genaue Zeile mit einer Markierung.
Läuft im BrowserOhne AnmeldungKein Upload
Anleitung: YAML zu JSON
- Füge YAML in das linke Feld ein oder öffne eine
.yaml/.yml-Datei. - Das JSON erscheint beim Tippen rechts. Wähle 2 Leerzeichen, 4 Leerzeichen oder Tabs für die Ausgabe.
- Aktiviere Schlüssel sortieren, um die Schlüssel alphabetisch zu ordnen. Das hilft beim Vergleichen von Konfigurationen.
- Ist das YAML ungültig, zeigt die Statusleiste Zeile und Spalte, und die betroffenen Zeilen erscheinen darunter mit einer
^-Markierung. - Kopiere oder lade das JSON herunter oder klicke auf Tauschen, um es zurück in YAML umzuwandeln.
So wird YAML auf JSON abgebildet
JSON ist eine Teilmenge von YAML 1.2: Jedes YAML-Mapping wird zu einem JSON-Objekt, jede Sequenz zu einem Array, und Skalare werden zu Strings, Zahlen, Booleans oder null. Reine YAML-Features werden bei der Konvertierung aufgelöst:
- Kommentare (
# …) entfallen, weil JSON keine Kommentare kennt. - Anker und Aliase (
&base,*base,<<: *base) werden zu vollständigen Kopien expandiert. - Zeitstempel wie
2024-01-02werden zu ISO-8601-Strings. - Mehrzeilige Strings (Literal-Blöcke mit
|und gefaltete Blöcke mit>) werden zu normalen Strings mit\n-Escapes.
YAML mit mehreren Dokumenten
Eine Datei kann mehrere YAML-Dokumente enthalten, getrennt durch ---, wie bei Kubernetes-Manifesten üblich. JSON hat dafür keine Entsprechung, daher liefert der Konverter ein JSON-Array mit einem Element pro Dokument und weist in der Statusleiste darauf hin. Ein einzelnes --- am Ende wird ignoriert.
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
Wird mein YAML irgendwohin hochgeladen?
Warum scheitert mein YAML mit „bad indentation“?
-) einheitlich unter ihrem übergeordneten Schlüssel eingerückt sind.Was passiert mit YAML-Kommentaren?
Warum ist <code>no</code> ein String geblieben?
true/false Booleans sind. Ältere YAML-1.1-Parser würden no, yes, on und off in Booleans umwandeln (das „Norwegen-Problem“).Kann ich ein Kubernetes-Manifest mit mehreren Ressourcen konvertieren?
--- getrennte Ressource wird zu einem Element des JSON-Arrays in der Ausgabe, bereit für jq oder kubectl apply -f -, das auch JSON-Listen akzeptiert.