YAML-zu-JSON-Konverter

Konvertiert YAML-Daten in JSON. Wandelt Strukturen, die in YAML geschrieben sind – Kubernetes-Manifeste, docker-compose.yml, CI-Konfigurationsdateien – sofort im Browser in ein Format um, das reine JSON-Werkzeuge wie jq verarbeiten können.

Was ist die Umwandlung von YAML in JSON?

Bei der Umwandlung von YAML in JSON wird eine Konfiguration, die im gut lesbaren YAML-Format geschrieben ist – Kubernetes-Manifeste, docker-compose.yml-Dateien, GitHub-Actions-Workflow-Definitionen –, direkt in Ihrem Browser in JSON umgewandelt, ein Format, das Programme maschinell verarbeiten können. Dieses Werkzeug versteht Mappings (`Schlüssel: Wert`), Block-Sequenzen (`- Element`), Flow-Sequenzen (`[a, b, c]`), Flow-Mappings (`{a: 1, b: 2}`), einfache Skalare wie Zeichenketten, Ganzzahlen, Dezimalzahlen, Wahrheitswerte und Null sowie `#`-Kommentare. Solange sich Ihr YAML an die Konstrukte hält, die in alltäglichen Konfigurationsdateien vorkommen, können Sie es einfügen und erhalten sofort eine funktionierende JSON-Darstellung.

Allerdings implementiert dieser Konverter nicht die vollständige YAML-1.2-Spezifikation. Bewusst ausgeklammert sind Anker (`&`) und Aliasse (`*`) zur Wiederverwendung von Werten, Multi-Dokument-Streams (ein zweites oder weiteres `---` löst einen Fehler aus), Block-Skalare (`|` und `>`) für mehrzeilige Zeichenketten sowie in derselben Zeile verschachtelte Sequenzen wie `- - Element`. Verlässt sich Ihre Eingabe auf eine dieser fortgeschrittenen Funktionen, schlägt die Umwandlung mit einer Fehlermeldung fehl – es lohnt sich daher, den betreffenden Teil vorher in eine einfachere, gleichwertige Form umzuschreiben. Die gesamte Verarbeitung läuft lokal in Ihrem Browser ab: Nichts, was Sie einfügen, wird jemals an einen externen Server gesendet – wichtig, wenn das untersuchte YAML Zugangsdaten oder interne Infrastrukturdetails enthält.

So verwenden Sie den YAML-zu-JSON-Konverter

  1. YAML einfügen Fügen Sie das YAML, das Sie umwandeln möchten, in das Eingabefeld auf der linken Seite ein. Falls Sie gerade keine Datei zur Hand haben, klicken Sie auf „Beispiel laden“, um zunächst ein funktionierendes Beispiel auszuprobieren.
  2. Konvertiertes JSON prüfen Die JSON-Ausgabe erscheint auf der rechten Seite, sobald Sie tippen oder einfügen. Bei einem Syntaxproblem in der Eingabe wird stattdessen eine Fehlermeldung mit der wahrscheinlichen Ursache angezeigt.
  3. Formatierte Anzeige ein- oder ausschalten Schalten Sie „Formatierte Anzeige“ ein für ein eingerücktes, gut lesbares Layout, oder aus, um alles auf eine einzige Zeile ohne Zeilenumbrüche zu reduzieren – je nachdem, wo Sie das Ergebnis anschließend einfügen möchten.
  4. Ergebnis kopieren oder herunterladen Nutzen Sie die Kopieren-Schaltfläche, um das JSON direkt in die Zwischenablage zu senden, oder die Download-Schaltfläche, um es als eigenständige .json-Datei für die spätere Verwendung zu speichern.

Tipps für die Nutzung

  • Fügen Sie ein Kubernetes-Manifest oder eine docker-compose.yml direkt ein, um die Struktur als JSON sichtbar zu machen – so können Kommandozeilenwerkzeuge wie jq, die nur JSON verstehen, sie abfragen.
  • Unquotierte Werte mit führender Null, etwa Postleitzahlen oder Telefonnummern, werden als Zahlen interpretiert und verlieren dabei die führende Null – setzen Sie Werte, die als Text erhalten bleiben sollen, immer in Anführungszeichen.
  • Komplexes YAML mit Ankern (`&`), Aliassen (`*`) oder Block-Skalaren (`|`/`>`) wird nicht unterstützt. Schreiben Sie es vor dem Einfügen in eine einfachere Form um.
  • Deaktivieren Sie „Formatierte Anzeige“, um ein einzeiliges JSON ohne Zeilenumbrüche zu erhalten – praktisch, wenn Sie es in einen API-Request-Body einfügen möchten, in dem keine Zeilenumbrüche gewünscht sind.

Wofür sich die Umwandlung von YAML in JSON eignet

Ein Kubernetes-Manifest mit jq abfragen

Manifeste können leicht mehrere hundert Zeilen umfassen. Wandeln Sie eines in JSON um und leiten Sie es an jq weiter – ein Pfad wie `.spec.containers[].image` liefert sofort genau den benötigten Wert.

docker-compose.yml in ein Skript einspeisen

Falls ein Skript oder eine Automatisierung, die Sie schreiben, noch keinen YAML-Parser mitbringt, können Sie die Compose-Datei zunächst in JSON umwandeln und sie dann mit einem einfachen, eingebauten JSON-Parser einlesen.

Die Struktur einer CI-Konfiguration sichtbar machen

Fügen Sie eine GitHub-Actions- oder GitLab-CI-Workflow-Datei ein, um ihre Struktur als JSON dargestellt zu sehen – verschachtelte Beziehungen, die man in einer rein auf Einrückung basierenden Ansicht leicht übersieht, werden dabei zu expliziten Schlüsselpfaden.

Sich auf ein reines YAML-Werkzeug oder eine YAML-API vorbereiten

Selbst wenn Ihre eigentliche Datenquelle JSON ist, kann es helfen, eine vorhandene YAML-Datei zunächst umzuwandeln, um genau zu verstehen, wie ihre Struktur aufgebaut ist, bevor Sie Code dagegen schreiben.

Mit anderen JSON-Werkzeugen weiterarbeiten

Fügen Sie das konvertierte JSON direkt in JSON zu TypeScript-Typdefinitionen oder den JSON-Formatierer ein, um damit weiterzuarbeiten.

YAML-Glossar

YAML
Ein rekursives Akronym für „YAML Ain't Markup Language“. YAML stellt verschachtelte Strukturen durch Einrückung statt durch Klammern dar und erlaubt Kommentare sowie größtenteils optionale Anführungszeichen – deshalb ist es das bevorzugte Format für Konfigurationsdateien, die Menschen von Hand bearbeiten.
Mapping
Eine YAML-Struktur, die Schlüssel mit Werten über die Syntax `Schlüssel: Wert` verbindet. Sie entspricht einem JSON-Objekt; Zeilen mit derselben Einrückungsebene werden als Schlüssel derselben Ebene der Struktur behandelt.
Block-Sequenz
Ein YAML-Array, geschrieben als eine Reihe von Zeilen, die jeweils mit einem Bindestrich und einem Leerzeichen beginnen, etwa `- Element`. Es entspricht einem JSON-Array; dieses Werkzeug liest eine Folge von `-`-Zeilen auf derselben Einrückungsebene als ein einziges Array.
Flow-Stil
Eine Art, eine Sequenz oder ein Mapping in einer einzigen Zeile ohne den einrückungsbasierten Block-Stil zu schreiben, etwa `[a, b, c]` oder `{a: 1, b: 2}`. Das sieht der Schreibweise von JSON-Arrays und -Objekten deutlich ähnlicher.
Anker und Aliasse
Eine YAML-Funktion, bei der `&Name` einen Wert kennzeichnet, sodass er an anderer Stelle mit `*Name` referenziert werden kann – so lässt sich derselbe Konfigurationsblock wiederverwenden, ohne ihn zu wiederholen. Dieses Werkzeug unterstützt diese Funktion nicht.
Block-Skalar
Eine Schreibweise für eine mehrzeilige Zeichenkette, die mit `|` (Zeilenumbrüche bleiben erhalten) oder `>` (Zeilenumbrüche werden zu Leerzeichen zusammengefaltet) beginnt. Häufig verwendet, um Shell-Skripte oder lange Beschreibungen einzubetten – dieses Werkzeug unterstützt es jedoch nicht.
Dokument-Stream
Ein Mechanismus, um mehrere YAML-Dokumente in einer einzigen Datei zusammenzufassen, getrennt durch `---`-Markierungen. Kubernetes-Konfigurationen bündeln so häufig mehrere Ressourcen, doch dieses Werkzeug wandelt jeweils nur ein Dokument auf einmal um.

Häufig gestellte Fragen

Das ist hilfreich, wenn Sie ein Kubernetes-Manifest oder eine CI-Konfigurationsdatei mit einem reinen JSON-Kommandozeilenwerkzeug wie jq abfragen oder verarbeiten möchten, oder wenn eine API oder ein Skript nur JSON akzeptiert und kein YAML direkt entgegennimmt.

Nein. Dieses Werkzeug ist ein schlanker Parser, der auf die gängigsten Konstrukte (Mappings, Sequenzen, einfache Skalare) beschränkt ist. Funktionen zur Wiederverwendung von Werten wie Anker und Aliasse, Multi-Dokument-Streams und Block-Skalare (`|`/`>`) liegen daher außerhalb des Funktionsumfangs.

Die häufigste Ursache ist eine uneinheitliche Einrückung – Elemente auf derselben Ebene mit unterschiedlicher Anzahl an Leerzeichen oder eine Einrückung mit Tabulatoren statt Leerzeichen. Auch ein fehlendes Leerzeichen nach dem Doppelpunkt in `Schlüssel: Wert` führt zu einem Analysefehler.

Dieses Werkzeug unterstützt nur die Richtung von YAML zu JSON. Wenn Sie JSON oder YAML separat formatieren oder validieren möchten, nutzen Sie die anderen Formatierungswerkzeuge dieser Website.
Tool-kun

Übrigens – Warum Konfigurationsdateien in YAML geschrieben werden, Werkzeuge aber JSON verlangen

YAML wird häufig für Konfigurationsdateien verwendet, die Menschen direkt bearbeiten – Kubernetes, docker-compose, GitHub-Actions-Workflows, Ansible-Playbooks –, weil es dank Kommentaren und größtenteils optionaler Anführungszeichen gut lesbar ist. JSON hingegen besitzt eine kleine, eindeutige Spezifikation, die sich leicht maschinell verarbeiten lässt, weshalb es sich als Standardformat für den Datenaustausch von APIs und Kommandozeilenwerkzeugen wie jq etabliert hat.

Die Konvertierung von YAML zu JSON überbrückt diese Lücke zwischen „Menschen schreiben YAML, Werkzeuge wollen JSON“. Gerade Kubernetes-Manifeste können mehrere hundert Zeilen umfassen, und `grep` allein stößt bei der Suche nach einem bestimmten Wert schnell an seine Grenzen. Wandelt man zuerst in JSON um und fragt dann mit jq ab, lässt sich mit einem Pfad wie `.spec.containers[].image` genau der benötigte Wert extrahieren.

Allerdings ist die vollständige YAML-Spezifikation (YAML 1.2) sehr umfangreich und umfasst fortgeschrittene Funktionen wie die Wiederverwendung von Werten über Anker und Aliasse, Multi-Dokument-Streams und Block-Skalare für mehrzeilige Strings. Dieses Werkzeug verzichtet bewusst auf diesen gesamten Funktionsumfang und konzentriert sich auf die „gemeinsame Teilmenge“ aus Mappings, Sequenzen und einfachen Skalaren, die in der Praxis am häufigsten vorkommt – so bleibt die Implementierung einfach und ganz ohne externe Abhängigkeiten.