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

JSON-Ausgabe

Anleitung: YAML zu JSON

  1. Füge YAML in das linke Feld ein oder öffne eine .yaml/.yml-Datei.
  2. Das JSON erscheint beim Tippen rechts. Wähle 2 Leerzeichen, 4 Leerzeichen oder Tabs für die Ausgabe.
  3. Aktiviere Schlüssel sortieren, um die Schlüssel alphabetisch zu ordnen. Das hilft beim Vergleichen von Konfigurationen.
  4. Ist das YAML ungültig, zeigt die Statusleiste Zeile und Spalte, und die betroffenen Zeilen erscheinen darunter mit einer ^-Markierung.
  5. 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-02 werden 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: no den Wert false, wodurch Norwegens Ländercode NO verschwindet. Dasselbe gilt für yes, on, off, y und n. YAML 1.2 behandelt nur true und false als Booleans.
  • Oktalzahlen: 0755 ist in 1.1 oktal, in 1.2 aber eine normale Dezimalzahl; dort schreibt man 0o755. Setze Dateiberechtigungen sicherheitshalber in Anführungszeichen.
  • Sexagesimalzahlen: In 1.1 kann 22:30 als 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?
Nein. Das Parsen erfolgt in deinem Browser mit der Open-Source-Bibliothek js-yaml. Konfigurationen mit Secrets oder internen Hostnamen verlassen nie deinen Rechner.
Warum scheitert mein YAML mit „bad indentation“?
In YAML wird die Verschachtelung durch Leerzeichen bestimmt, Tabs sind zum Einrücken nicht erlaubt. Achte darauf, dass Schlüssel auf derselben Ebene exakt bündig stehen und Listeneinträge (-) einheitlich unter ihrem übergeordneten Schlüssel eingerückt sind.
Was passiert mit YAML-Kommentaren?
Sie werden entfernt. JSON hat keine Kommentarsyntax, daher können Kommentare nicht übernommen werden. Auch eine Rückkonvertierung in YAML stellt sie nicht wieder her.
Warum ist <code>no</code> ein String geblieben?
Dieses Tool folgt YAML 1.2, wo nur 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?
Ja. Jede durch --- 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.

Ähnliche Tools