Utilia

JSON-zu-YAML-Konverter

JSON in YAML und YAML in JSON umwandeln, direkt im Browser – mit Ankern, Merge-Keys und Dateien mit mehreren Dokumenten. Nichts wird hochgeladen.

Umwandlung

So nutzen Sie den JSON-zu-YAML-Konverter

  1. Wählen Sie die Richtung: „JSON → YAML“ oder „YAML → JSON“.
  2. Fügen Sie Ihre Daten ein oder klicken Sie auf „Datei öffnen“, um eine .json-, .yaml- oder .yml-Datei zu laden (bis 10 MB).
  3. Wählen Sie die „Einrückung“ (2 oder 4 Leerzeichen) und bei Bedarf „Schlüssel sortieren“ für eine alphabetische Reihenfolge.
  4. Klicken Sie auf „Umwandeln“ oder tippen Sie einfach weiter: Das Ergebnis aktualisiert sich automatisch. Ist die Eingabe ungültig, nennt die Fehlermeldung Zeile und Spalte des Problems.
  5. Kopieren oder laden Sie das Ergebnis herunter. „Richtung tauschen“ schickt die Ausgabe zurück in die Eingabe, um sie in die andere Richtung umzuwandeln.

JSON und YAML: gleiche Daten, andere Syntax

In der Praxis ist YAML eine Obermenge von JSON: Alle Daten, die ein JSON-Dokument beschreibt, kann YAML ebenfalls ausdrücken – mit einer schlankeren Syntax, die Menschen leichter lesen und bearbeiten können. Deshalb werden Kubernetes-Manifeste, Docker-Compose-Dateien, GitHub-Actions- und GitLab-CI-Pipelines, Ansible-Playbooks und OpenAPI-Spezifikationen meist in YAML geschrieben, während APIs und Programme JSON austauschen.

Dieselben Daten in beiden Formaten:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

JSON → YAML

Der Konverter schreibt YAML im Blockstil: ein Schlüssel pro Zeile, Listen mit Bindestrichen und eingerückte verschachtelte Objekte. Lange Zeichenketten werden nie umbrochen, und mehrzeilige Zeichenketten verwenden den Literal-Stil |, damit Zeilenumbrüche exakt erhalten bleiben. Zeichenketten, die YAML sonst als anderen Typ lesen würde, werden in Anführungszeichen gesetzt: "yes", "1.0" oder "null" bleiben auch nach einer Rückumwandlung Zeichenketten. „Schlüssel sortieren“ ordnet die Schlüssel jedes Objekts alphabetisch, was den Vergleich zweier Konfigurationsdateien erleichtert.

YAML → JSON

Das YAML wird mit dem Core-Schema von YAML 1.2 gelesen, also nach denselben Regeln wie in den meisten modernen Tools:

  • true/false, Zahlen und null (oder ~) werden zu JSON-Werten; yes, no, on und off bleiben Zeichenketten, wie es die Spezifikation von YAML 1.2 verlangt.
  • Anker und Aliase (&base, *base) werden aufgelöst, und Merge-Keys (<<: *base), wie sie in CI-Dateien üblich sind, werden unterstützt.
  • Eine Datei mit mehreren durch --- getrennten Dokumenten wird zu einem JSON-Array mit einem Element pro Dokument; eine Meldung sagt Ihnen, wie viele zusammengefasst wurden.
  • Kommentare entfallen, da JSON keine Kommentare kennt.
  • .inf und .nan haben keine Entsprechung in JSON; sie werden als Zeichenketten "Infinity" und "NaN" geschrieben.

Zum Schutz Ihres Browsers vor „Billion Laughs“-Dateien, in denen wenige Aliase zu Milliarden von Werten anwachsen, wird ein Dokument abgelehnt, das sich zu mehr als einer Million Werten auflöst.

Häufige YAML-Fehler

  • Tabulatoren zum Einrücken: YAML erlaubt nur Leerzeichen.
  • Uneinheitliche Einrückung: Elemente derselben Liste oder desselben Objekts müssen in derselben Spalte beginnen.
  • Fehlendes Leerzeichen nach dem Doppelpunkt: key:value ist eine einzige Zeichenkette, key: value dagegen ein Schlüssel-Wert-Paar.
  • Sonderzeichen ohne Anführungszeichen: Ein Wert, der mit @, einem Backtick, *, & oder ! beginnt oder : bzw. # enthält, muss in Anführungszeichen stehen.

Häufige Fragen

Wird meine Datei an einen Server gesendet?

Nein. Die Umwandlung läuft in Ihrem Browser, Ihre Konfigurationsdateien, Secrets oder API-Daten verlassen Ihren Rechner nie.

Warum werden „yes“ und „no“ nicht zu Wahrheitswerten?

Seit YAML 1.2 sind nur true und false boolesche Werte. Ältere Parser für YAML 1.1 behandelten yes, no, on und off als Wahrheitswerte, was zum berühmten „Norwegen-Problem“ führte (der Ländercode NO wurde als false gelesen). Dieses Tool folgt YAML 1.2.

Bleiben YAML-Kommentare erhalten?

Nein. JSON kennt keine Kommentare, bei YAML → JSON gehen sie daher verloren. Bei JSON → YAML können Sie dem Ergebnis nachträglich Kommentare hinzufügen.

Kann ich eine Kubernetes-Datei mit mehreren Ressourcen umwandeln?

Ja. Jede durch --- getrennte Ressource wird zu einem Element eines JSON-Arrays. Wandeln Sie dieses Array zurück in YAML um, erhalten Sie ein einziges Dokument mit einer Liste.

Ändert der Konverter die Reihenfolge der Schlüssel?

Nur wenn Sie „Schlüssel sortieren“ aktivieren: Sonst behalten die Schlüssel die Reihenfolge Ihrer Eingabe. Die einzige Ausnahme kommt von JavaScript selbst: Schlüssel, die ganze Zahlen sind, etwa "10" oder "2", werden in aufsteigender Reihenfolge an den Anfang gestellt.