YAML ⇄ JSON

    Über dieses Tool

    Dieses kostenlose Tool wandelt YAML direkt im Browser in JSON um und auf Wunsch auch JSON in YAML. Typische Eingaben sind Kubernetes-Manifeste, Docker-Compose-Dateien, CI-Pipelines und App-Konfigurationen. Ist die Eingabe ungültig, nennt das Tool Zeile und Spalte und markiert die fehlerhafte Stelle. Eingabe und Ausgabe sind Zeile für Zeile gekoppelt. Außerdem zeigt das Tool Werte, die YAML 1.1 und YAML 1.2 verschieden lesen. Die Daten verlassen den Browser nicht.

    Wofür du es nutzen kannst

    Häufige Fragen

    Wie wandle ich YAML in JSON um?

    Füge den YAML-Text ins linke Feld ein oder ziehe eine .yaml- bzw. .json-Datei darauf. Das JSON erscheint sofort rechts. Du kannst es kopieren oder als Datei herunterladen, wahlweise formatiert oder kompakt.

    Werden meine Daten an einen Server geschickt?

    Nein. Die Umwandlung läuft vollständig im Browser, ohne Server, Speicherung oder Cookie. Das ist auch bei Konfigurationsdateien mit internen Angaben wichtig.

    Warum ist meine YAML-Datei ungültig?

    Das Tool nennt Zeile und Spalte, markiert die Stelle und springt auf Wunsch direkt dorthin. Häufige Ursachen sind Tabulatoren statt Leerzeichen in der Einrückung, falsch ausgerichtete Einrückung und ein „: “ in einem Wert ohne Anführungszeichen. Auch nicht geschlossene Anführungszeichen oder Klammern sind oft der Grund.

    Was ist das Norwegen-Problem in YAML?

    In YAML 1.1 sind yes, no, on und off Wahrheitswerte. Dadurch wird der Ländercode NO für Norwegen zu false. YAML 1.2 kennt nur true und false, doch viele Werkzeuge wie PyYAML lesen weiterhin nach 1.1. Sicher ist es, solche Werte in Anführungszeichen zu setzen.

    Welche YAML-Version soll ich einstellen, 1.1 oder 1.2?

    Wähle die Version, nach der dein Zielwerkzeug liest. PyYAML, Ruby und viele Kubernetes-Werkzeuge folgen YAML 1.1, neuere Bibliotheken eher 1.2. Die Liste „Fallen“ zeigt jede Stelle, an der sich die beiden Lesarten unterscheiden.

    Werden Anker, Aliase und Merge-Keys aufgelöst?

    Ja. JSON kennt keine Verweise, deshalb schreibt das Tool Aliase (*name) vollständig aus. Den Merge-Key <<, wie er in Docker Compose üblich ist, kannst du in den Einstellungen abschalten. Gegen Alias-Bomben (Billion Laughs) bricht die Verarbeitung rechtzeitig ab.

    Kann ich auch JSON in YAML umwandeln?

    Ja, über den Richtungsschalter. Texte, die in YAML sonst als Zahl, Wahrheitswert, null oder Datum gelesen würden, setzt das Tool in Anführungszeichen. Anschließend liest es die eigene Ausgabe in YAML 1.1 und 1.2 zurück und prüft, ob dieselben Daten herauskommen.

    Warum wird aus 0755 oder 01234 eine andere Zahl?

    In YAML 1.1 gilt eine führende Null als oktal, 0755 wird also zu 493. In YAML 1.2 ist die Zahl dezimal, und die führende Null geht verloren: 01234 wird zu 1234. Postleitzahlen und Dateirechte solltest du deshalb in Anführungszeichen schreiben.

    Wie groß darf die Datei sein?

    Das Tool verarbeitet bis zu 5 MB Text und bis zu 100 Verschachtelungsebenen. Die Ausgabe zeigt die ersten 4000 Zeilen. Kopieren und Herunterladen liefern immer den vollständigen Text.

    Hintergrund

    YAML und JSON beschreiben dieselben Grundstrukturen: Objekte (Mappings), Listen und einfache Werte wie Texte, Zahlen, Wahrheitswerte und null. JSON ist streng. Texte und Schlüssel stehen in doppelten Anführungszeichen, Kommentare gibt es nicht, und ein Komma am Ende ist verboten. YAML setzt dagegen auf Einrückung und erlaubt Kommentare, mehrzeilige Blocktexte sowie Anker (&name) und Aliase (*name), um Teile wiederzuverwenden. Deshalb ist YAML in Konfigurationen wie Kubernetes, Docker Compose und CI-Pipelines verbreitet, während APIs und viele Programme JSON erwarten. JSON ist fast eine Teilmenge von YAML. Ein YAML-Parser kann JSON daher meist direkt lesen.

    Bei der Umwandlung ist die YAML-Version eine bekannte Fehlerquelle. YAML 1.1 liest yes, no, on und off als Wahrheitswerte. Diese Eigenheit heißt Norwegen-Problem, weil der Ländercode NO dadurch zu false wird. YAML 1.1 behandelt außerdem Zahlen mit führender Null als Oktalzahlen (0755 ergibt 493) und Zeitangaben wie 12:30 als Sexagesimalzahl (750). Die 2009 veröffentlichte Version 1.2 vereinfacht diese Regeln mit ihrem Core-Schema: Dort gelten nur true, false und null als Sonderwerte. Viele verbreitete Werkzeuge, etwa PyYAML, lesen aber weiterhin nach 1.1. Versionsübergreifend tückisch sind Kommazahlen wie 1.10, die als Zahl zu 1.1 werden, und sehr große Ganzzahlen über 2^53−1, die JavaScript und viele JSON-Leser still runden. Das Tool zeigt solche Stellen in der Liste „Fallen“.

    Anker und Aliase gibt es in JSON nicht. Das Tool schreibt sie deshalb aus. Der Merge-Key << mischt Mappings und gehört nicht zum Kern von YAML 1.2, ist aber in Docker Compose verbreitet. Weil Aliase ein Dokument exponentiell aufblähen können (Billion-Laughs-Angriff), begrenzt das Tool die Knotenzahl und bricht vorher ab.

    Der Parser ist eine eigene Implementierung. Sie folgt der Spezifikation YAML 1.2.2 und den Typdefinitionen von YAML 1.1 und wurde gegen PyYAML getestet. Nicht unterstützte Konstrukte wie komplexe Schlüssel oder %TAG-Direktiven meldet das Tool im Klartext, statt sie falsch umzusetzen. Datumsangaben bleiben Text, da JSON keinen Datumstyp kennt. In der Gegenrichtung setzt das Tool Texte in Anführungszeichen, wenn sie sonst falsch gelesen würden. Danach prüft es die erzeugte YAML-Ausgabe durch erneutes Einlesen in beiden Versionen.

    ⚠️ Bitte beachten

    Die Werkzeuge auf dieser Website werden als kostenloses Hobbyangebot bereitgestellt und dienen ausschließlich zur Information und privaten Nutzung. Für die Richtigkeit, Vollständigkeit oder Eignung der Ergebnisse für einen bestimmten Zweck wird keine Gewähr übernommen. Vor Verwendung der Ergebnisse — insbesondere bei finanziellen, rechtlichen oder sicherheitsrelevanten Entscheidungen — sind diese eigenverantwortlich zu prüfen. Eine Haftung für Schäden aus der Nutzung ist ausgeschlossen, soweit dies gesetzlich zulässig ist.