YAML und JSON in beide Richtungen umwandeln und dabei prüfen
YAML ist das übliche Format für Konfigurationsdateien: die Dienste einer Anwendung, eine CI-Pipeline, Servereinstellungen oder Übersetzungsdateien. JSON erwarten dagegen APIs und viele Programme. Dieses Werkzeug wandelt das eine in das andere um, arbeitet als YAML Validator und Formatierer und nennt zu jedem Fehler Zeile und Spalte. Alles läuft in Ihrem Browser, Ihr Text wird nicht hochgeladen.
So funktioniert es
- Wählen Sie die Umwandlung: „YAML → JSON“, „JSON → YAML“ oder „YAML formatieren“ (saubere Neuschreibung derselben Datei).
- Fügen Sie den Text ein, klicken Sie auf „Datei öffnen“ oder probieren Sie „Beispiel“.
- Stellen Sie die „Einrückung des JSON“ (2 Leerzeichen, 4 Leerzeichen, Tabulator oder „Kompakt (eine Zeile)“) oder die „Einrückung des YAML“ (2 oder 4 Leerzeichen) ein.
- Lesen Sie den Status: „Gültiges YAML.“, eine Liste von Hinweisen oder den Fehler mit hervorgehobenem Ausschnitt und der Schaltfläche „Zum Fehler springen“.
- Wechseln Sie zur „Baumansicht“, um die Daten zu durchsuchen, und nutzen Sie dann „Kopieren“ oder „Herunterladen“.
YAML und JSON im Vergleich
Beide Formate enthalten dieselben Daten. YAML nutzt Einrückung, wo JSON geschweifte und eckige Klammern sowie Anführungszeichen braucht.
| YAML | Ergebnis in JSON |
|---|---|
dienst: web | "dienst": "web" |
replicas: 2 | "replicas": 2 |
debug: false | "debug": false |
ports:, darunter - "8080:80" | "ports": ["8080:80"] |
Mit „Kompakt (eine Zeile)“ passen diese Zeilen in eine einzige JSON-Zeile mit 63 Zeichen, ganz ohne Leerzeichen. In der Gegenrichtung schreibt das Werkzeug YAML im Blockstil und setzt Anführungszeichen nur, wo sie nötig sind.
Die wichtigsten Syntaxregeln
- Auf einen Schlüssel folgen Doppelpunkt und Leerzeichen:
name: wert. - Die Verschachtelung entsteht durch Einrückung, und zwar nur mit Leerzeichen.
- Ein Listeneintrag beginnt mit Bindestrich und Leerzeichen:
- wert. |behält die Zeilenumbrüche eines Textblocks,>macht daraus Leerzeichen;-entfernt den letzten Umbruch,+behält alle Leerzeilen am Ende.&namesetzt einen Anker,*nameverwendet ihn wieder und<<: *nameführt ein Objekt ein;---trennt Dokumente, die das JSON in einem Array sammelt.- Ein Kommentar beginnt mit einem Leerzeichen und dann
#.
Häufige Fehler und Fallen
Tabulatoren sind in der Einrückung verboten: Folgt auf a: eine Zeile, die mit einem Tabulator beginnt, meldet das Werkzeug Zeile 2, Spalte 1. Eine um ein Leerzeichen verschobene Zeile zerstört die Struktur. Ein Wert mit Doppelpunkt und Leerzeichen wie titel: Hinweis: wichtig wird in Spalte 15 abgelehnt; schreiben Sie titel: "Hinweis: wichtig".
Die bekannteste Falle ist das „Norwegen-Problem“: In YAML 1.1 wird land: NO zum Wahrheitswert false, ebenso yes, no, on und off. Dieses Werkzeug folgt YAML 1.2, der aktuellen Version, in der nur true und false Wahrheitswerte sind; NO bleibt also der Text „NO“. Da viele Programme noch YAML 1.1 lesen, empfiehlt ein Hinweis Anführungszeichen. Weitere Hinweise betreffen doppelte Schlüssel (der letzte Wert gilt) und irreführende Zahlen: Die Postleitzahl plz: 01067 wird zu 1067 (ein YAML-1.1-Leser sieht darin die Oktalzahl 567), version: 3.10 wird zu 3.1.
Sicherheit
Laden Sie YAML aus unbekannter Quelle nie mit einem Lader, der aus Tags Objekte der Programmiersprache erzeugen kann; verwenden Sie immer den „sicheren“ Lader Ihrer Sprache. Hier werden nicht standardmäßige Tags nur gemeldet und nie ausgeführt, und Aliase, die mehr als 1.000.000 Knoten hinzufügen würden (der „Billion Laughs“-Angriff), brechen das Lesen ab.
Häufige Fragen
Landen Kommentare im JSON?
Nein, JSON kennt keine Kommentare. Auch „YAML formatieren“ behält sie nicht und ersetzt jeden Alias durch seinen Inhalt.
Warum steht "3.10" im erzeugten YAML in Anführungszeichen?
Ohne Anführungszeichen würde 3.10 als Zahl 3,1 gelesen. Das Werkzeug setzt jede Zeichenkette in Anführungszeichen, die wie eine Zahl, ein Wahrheitswert oder null aussieht.
Bleiben sehr große Ganzzahlen exakt?
Ja. 12345678901234567890 wird Ziffer für Ziffer übernommen, ohne die übliche Rundung im Browser.
Wie groß darf die Datei sein?
Bis zu 20 MB. Die Analyse läuft im Hintergrund, die Seite bleibt bedienbar.