JSON und YAML sind zwei Arten, dasselbe zu schreiben: strukturierte Daten aus Objekten, Listen, Strings, Zahlen und Booleans. JSON verpackt es in Klammern und Kommas, YAML nutzt Einrückung und Zeilenumbrüche. Da sie identische Strukturen abbilden, lässt sich verlustfrei umwandeln — ein paar Fallen sollte man aber kennen.
Dieselben Daten, zwei Stile
JSON:
{ "name": "Yunknow", "tags": ["free", "fast"], "active": true }
YAML:
name: Yunknow
tags:
- free
- fast
active: true
Dieselben Daten, andere Kleidung. YAML lässt die Satzzeichen weg und setzt auf Einrückung — genau deshalb lieben Konfigurationsdateien es.
Wann welches
- JSON — APIs,
package.json, alles, was ein Programm automatisch liest oder schreibt. Streng, eindeutig, universell unterstützt. - YAML — Konfiguration, die du von Hand bearbeitest: Docker Compose, Kubernetes, GitHub Actions, CI-Pipelines. Leichter lesbar, mit Kommentaren.
Ein üblicher Ablauf: Konfiguration in YAML schreiben und von Tools als JSON einlesen lassen.
Stolperfallen
- Einrückung ist in YAML bedeutsam. Tabs und Leerzeichen zu mischen oder die Tiefe zu verfehlen ändert die Bedeutung oder bricht das Parsen. Immer mit Leerzeichen einrücken.
- Kommentare verschwinden nach JSON. JSON kennt keine Kommentarsyntax, daher gehen
# Notiz-Zeilen bei YAML → JSON verloren. Das ist erwartet, kein Fehler. - Das „Norwegen-Problem”. In älterem YAML werden unquotierte
no,yes,on,offzu Booleans — der LändercodeNOkann so zufalsewerden. Strings, die wie Booleans aussehen, in Anführungszeichen setzen. - Anker werden aufgelöst. Die Wiederverwendung per
&anchor/*refin YAML wird bei der Umwandlung in JSON zu flachen Daten aufgelöst.
Funktionsvergleich
| Merkmal | JSON | YAML |
|---|---|---|
| Kommentare | Nein | Ja (#) |
| Nachgestellte Kommas | Nicht erlaubt | Nicht relevant |
| Lesbarkeit | Gut | Bei tiefer Verschachtelung besser |
| Parsing-Geschwindigkeit | Schneller | Langsamer |
| Mehrzeilige Strings | Nur escaptes \n | Block-Skalare |
| Mehrere Dokumente pro Datei | Nein | Ja (----Trenner) |
Ein oft übersehenes YAML-Feature sind Block-Skalare für langen Text — ein Literal-Block behält Zeilenumbrüche, ein gefalteter Block fügt sie zu einer Zeile zusammen:
description: |
Zeile eins bleibt eine Zeile.
Zeile zwei bleibt eine Zeile.
summary: >
Das erstreckt sich über
mehrere Quellzeilen,
wird aber eine Zeile.
Häufige Fragen
Ist YAML eine Obermenge von JSON? Praktisch ja. Seit YAML 1.2 ist jedes gültige JSON auch gültiges YAML, ein YAML-Parser liest JSON also direkt. Umgekehrt gilt das nicht — JSON versteht die Einrückungssyntax von YAML nicht.
Was sollte eine API zurückgeben? Fast immer JSON — schneller zu parsen, eindeutig und überall unterstützt. YAML bleibt für Dateien, die Menschen von Hand bearbeiten.
Wo sind meine Kommentare nach der Umwandlung? Sie entfallen, weil JSON keine Kommentarsyntax kennt. Willst du Notizen behalten, füge stattdessen einen echten Schlüssel wie "_comment" hinzu. Einen tieferen Blick auf das Format gibt Was ist JSON.
Akzeptieren Tools beide Formate? Viele CI- und Container-Werkzeuge lesen wahlweise YAML oder JSON derselben Struktur. Du kannst also bequem in YAML schreiben und bei Bedarf nach JSON exportieren, ohne die Bedeutung der Daten zu ändern.
Sicher umwandeln, im Browser
Der JSON-⇄-YAML-Konverter wandelt eins ins andere um und prüft dabei die Syntax — bei einem Fehler zeigt er die genaue Stelle. Er läuft komplett im Browser, sodass selbst private Konfiguration dein Gerät nie verlässt.
Verwandte Tools
- Zum Verschönern, Minimieren oder Validieren von JSON den JSON-Formatter.
- Um tabellarisches JSON in eine Tabelle zu bringen, JSON ⇄ CSV ⇄ Excel.