JSON in YAML
JSON-Konfiguration im Browser in YAML umwandeln: Einrückung, Anführungszeichen und mehrzeiliger Text nach YAML 1.2; die Richtung YAML → JSON auf derselben Seite
Ihre Daten bleiben bei Ihnen. Die Umwandlung läuft im Browser; nichts wird an einen Server gesendet.
Hat dieses Werkzeug geholfen?
Danke, Ihre Rückmeldung ist angekommen.
So funktioniert es
Sie haben eine JSON-Konfiguration aus einer Schnittstelle oder einer Anwendung, aber docker-compose, ein GitHub-Actions-Workflow, Home Assistant oder ein Kubernetes-Manifest verlangt YAML: Fügen Sie den JSON-Text in das linke Feld ein, das YAML entsteht im rechten Feld beim Tippen. Objektschlüssel werden zu Zeilen der Form 'schlüssel: wert', Arrays zu Zeilen mit '- element'. Verschachtelung wird durch Einrückung ausgedrückt, und zwar nur mit Leerzeichen, weil YAML keine Tabulatoren zulässt. Zeichenketten stehen ohne Anführungszeichen; nur Werte, die ein YAML-Leser sonst als etwas anderes deuten würde, bekommen welche: Im JSON sind "true", "007", "1e3" oder "2024-01-05" Text, ohne Anführungszeichen würde ein YAML-Leser daraus einen Wahrheitswert, eine Zahl oder ein Datum machen. Wie viele Zeichenketten aus diesem Grund geschützt wurden, steht in der Ergebniszeile. Mehrzeiliger Text wird als '|'-Block Zeile für Zeile geschrieben; Zahlen behalten ihre Schreibweise aus dem JSON (1e3, 1.0). Kopieren Sie das Ergebnis in die Zieldatei, etwa docker-compose.yml oder .github/workflows/deploy.yml, oder laden Sie es als .yaml herunter. Für die Gegenrichtung wählen Sie 'YAML → JSON': Gelesen werden Block-Mappings und Listen, Werte in Anführungszeichen, einzeilige Flow-Schreibweise mit [ ] und { }, '|'- und '>'-Blöcke sowie Kommentare. Nicht unterstützte Strukturen wie Anker, Aliasse und Typ-Tags werden mit Zeilennummer gemeldet. In dieser Richtung speichern Sie den Download mit der Endung .json; der Dateiname lautet in beiden Richtungen daten.yaml. Ist das JSON ungültig, nennt die Meldung auf Deutsch die Zeile und die Spalte der Fehlerstelle.
Dieses Werkzeug ist auch als json in yaml umwandeln, yaml in json, yaml in json umwandeln, json zu yaml konvertieren, yaml datei in json umwandeln, json yaml converter online bekannt.
Was ist JSON?
JSON ist das Textformat, in dem Programme Daten untereinander austauschen. Auf dieser Seite begegnet es Ihnen meist als exportierte Einstellungsdatei einer Anwendung oder als Antwort einer Schnittstelle. Die Regeln sind streng, und das hilft hier: Jeder Schlüssel steht in doppelten Anführungszeichen, Werte werden durch Kommas getrennt, Kommentare gibt es nicht, nach dem letzten Eintrag darf kein Komma folgen, und das Dezimalzeichen ist immer der Punkt, nie das Komma. Ob ein JSON gültig ist, steht deshalb eindeutig fest; bei ungültigem Text nennt das Werkzeug Zeile und Spalte. Die Typen sind klar getrennt: 7 ist eine Zahl, "7" ist Text. Genau diese Trennung darf beim Übergang nach YAML nicht verloren gehen, deshalb ist die Entscheidung über Anführungszeichen so wichtig.
Was ist YAML?
YAML ist ein Konfigurationsformat, das Menschen lesen und von Hand bearbeiten sollen; docker-compose, GitHub Actions, Kubernetes, Ansible und Home Assistant speichern ihre Einstellungen darin. Die Struktur entsteht nicht durch Klammern, sondern durch Einrückung: Beginnt eine Zeile weiter rechts als die darüber, gehört sie zu ihr. Darum wird nur mit Leerzeichen eingerückt, Tabulatoren sind verboten. Schlüssel stehen ohne Anführungszeichen, hinter '#' dürfen Kommentare stehen, mehrzeiliger Text wird nach '|' unverändert übernommen. Der Preis für die gute Lesbarkeit ist Mehrdeutigkeit: no, 007 oder 2024-01-05 ohne Anführungszeichen sind bei manchen Lesern kein Text mehr. Dieses Werkzeug schützt solche Werte, indem es sie in Anführungszeichen setzt.
Was ist der Unterschied zwischen JSON und YAML?
Beide tragen dasselbe Datenmodell: Mappings (Schlüssel und Wert), Listen und einfache Werte. Der Unterschied liegt in der Schreibweise und im Adressaten. JSON ist für Maschinen geschrieben: Klammern und Anführungszeichen sind Pflicht, Kommentare gibt es nicht, alles hat genau eine Form, und darum lässt es sich fehlerfrei erzeugen und lesen; Antworten von Schnittstellen und Datendateien sind JSON. YAML ist für Menschen geschrieben: Die Struktur steht in der Einrückung, Anführungszeichen sind meist überflüssig, Kommentare sind erlaubt, langer Text wird als Block geschrieben; Konfigurationsdateien, die von Hand gepflegt werden, sind YAML. YAML 1.2 ist zugleich eine Obermenge von JSON: Gültiges JSON ist auch gültiges YAML. Deshalb nimmt dieses Werkzeug in der Richtung YAML → JSON auch JSON-Text direkt an. Der Preis ist die Typ-Unschärfe von YAML-Werten ohne Anführungszeichen: In JSON sind "true" und true zwei verschiedene Dinge, in YAML ist true ohne Anführungszeichen ein Wahrheitswert. Die eigentliche Arbeit der Umwandlung besteht darin, diese Trennung zu bewahren; die Ergebniszeile sagt, wie viele Zeichenketten deshalb Anführungszeichen erhalten haben.
Drei YAML-Fallen: Tabulator, yes/no und 007 ohne Anführungszeichen
YAML liest die Struktur aus der Einrückung, und die darf nur aus Leerzeichen bestehen. Eine mit Tabulator eingerückte Zeile ist nach dem Standard ein Fehler. Deshalb bietet dieses Werkzeug keine Tabulator-Option an. Meldet eine vorhandene YAML-Datei 'uneinheitliche Einrückung', steckt meist ein unsichtbarer Tabulator darin; der Befehl 'Tabulatoren in Leerzeichen umwandeln' in Ihrem Editor beseitigt das Problem.
Die zweite Falle ist der Versionsunterschied. In YAML 1.1 waren yes, no, on und off ohne Anführungszeichen Wahrheitswerte; YAML 1.2 behandelt sie als gewöhnliche Zeichenketten. Bekannt ist das vom Schlüssel 'on:' in GitHub-Actions-Dateien und von 'restart: no' in docker-compose: Ein älterer Leser macht aus on ein true und aus no ein false. In der Richtung YAML → JSON wendet dieses Werkzeug die Regel von 1.2 an (yes bleibt Text). In der Richtung JSON → YAML setzt es diese Wörter in Anführungszeichen, damit sie bei jedem Leser Text bleiben, egal welcher Generation.
Die dritte Falle sind Zeichenketten, die ohne Anführungszeichen den Typ wechseln. Im JSON ist "007" Text; im YAML ist 007 ohne Anführungszeichen die Zahl 7, aus 1e3 wird tausend, aus 2024-01-05 ein Datum. Das Werkzeug setzt solche Werte in doppelte Anführungszeichen und nennt in der Ergebniszeile die Anzahl. Dieselbe Regel gilt für die leere Zeichenkette (""), für Text mit Leerzeichen am Anfang oder Ende, für Werte mit Doppelpunkt und Leerzeichen (': ') sowie für Text, der mit einem YAML-Zeichen wie '#', '-', '*' oder '&' beginnt.
Mehrzeiliger Text wird als '|'-Block geschrieben: Unter der Überschrift 'beschreibung: |' folgen die Zeilen eingerückt; fehlt der Zeilenumbruch am Ende, steht '|-'. Diese Form braucht keine Escape-Zeichen und ist deshalb für Befehlslisten und lange Beschreibungen am besten lesbar.
Was wann: Einrückung, Richtung und Dateiname
Wählen Sie 2 Leerzeichen. Die Beispiele von docker-compose, GitHub Actions und Kubernetes sind durchweg so geschrieben, und Ihre Datei passt zu denen Ihres Teams. 4 Leerzeichen lohnen sich nur bei tiefer Verschachtelung, wenn sich mit dem Auge schwer erkennen lässt, zu welcher Ebene eine Zeile gehört. Beide Einstellungen ergeben gültiges YAML; der Unterschied liegt allein in der Lesbarkeit.
Die Richtung YAML → JSON hat einen bewusst engen, klar benannten Umfang: Block-Mappings und Listen, verschachtelte Einrückung, Zeichenketten mit und ohne Anführungszeichen, einzeilige Flow-Schreibweise wie [a, b] und {a: 1}, '|'- und '>'-Blöcke, Kommentare und ein einzelner Dokumentanfang '---'. Nicht unterstützt sind Anker und Aliasse (&basis, *basis), Typ-Tags (!!str), komplexe Schlüssel mit '?', Werte in Anführungszeichen oder Flow-Schreibweise über mehrere Zeilen sowie mehrere Dokumente in einem Text. Trifft das Werkzeug auf eine dieser Strukturen, meldet es die Zeilennummer, statt still ein falsches Ergebnis zu liefern. Eine Datei mit Aliassen wandeln Sie um, indem Sie den vom Alias eingesetzten Wert vorher von Hand ausschreiben.
Der Download heißt in beiden Richtungen daten.yaml. Die Ausgabe von JSON → YAML können Sie als .yaml oder .yml speichern; beide Endungen meinen dasselbe Format: docker-compose.yml und GitHub Actions nutzen .yml, Kubernetes meist .yaml. In der Richtung YAML → JSON ändern Sie die Endung der heruntergeladenen Datei auf .json; die Ergebniszeile erinnert jedes Mal daran.
Häufige Fragen
Wie wandle ich eine JSON-Datei in YAML um?
Öffnen Sie die JSON-Datei in einem Texteditor, kopieren Sie den Inhalt und fügen Sie ihn auf dieser Seite in das linke Feld ein; das YAML erscheint sofort im rechten Feld. Kopieren Sie die Ausgabe in die Zieldatei (docker-compose.yml, Workflow-Datei) oder laden Sie sie als .yaml herunter. Sie müssen keine Datei hochladen oder ablegen, der Text genügt.
Kann ich YAML zurück in JSON umwandeln?
Ja. Stellen Sie die Option 'Richtung' auf 'YAML → JSON'. Gelesen werden Block-Mappings und Listen, Werte in Anführungszeichen, einzeilige Flow-Schreibweise, '|'- und '>'-Blöcke sowie Kommentare. Anker und Aliasse, Typ-Tags und mehrere Dokumente werden nicht unterstützt; in dem Fall nennt die Meldung die Zeile. Speichern Sie den Download mit der Endung .json.
Warum stehen manche Werte in Anführungszeichen?
Weil ein YAML-Leser sie ohne Anführungszeichen nicht als Text, sondern als anderen Typ lesen würde: "true" als Wahrheitswert, "007" als Zahl 7, "1e3" als tausend, "2024-01-05" als Datum und "yes" bei älteren Lesern (YAML 1.1) als true. Aus demselben Grund werden die leere Zeichenkette, Text mit Leerzeichen am Rand und Werte mit YAML-Zeichen wie '#', '-' oder ': ' geschützt. Die Anzahl steht in der Ergebniszeile; die Anführungszeichen verändern die Daten nicht, sie bewahren sie.
Werden die eingefügten Daten an einen Server geschickt?
Nein. Das Lesen des JSON und das Erzeugen des YAML laufen vollständig in Ihrem Browser. Auch eine Konfiguration mit Datenbankpasswort oder API-Schlüssel verlässt diese Seite nicht und wird nirgends gespeichert.