Zum Hauptinhalt springen

← Zurück zum Blog

JSON vs. YAML: Unterschied und Umwandlung

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, off zu Booleans — der Ländercode NO kann so zu false werden. Strings, die wie Booleans aussehen, in Anführungszeichen setzen.
  • Anker werden aufgelöst. Die Wiederverwendung per &anchor/*ref in YAML wird bei der Umwandlung in JSON zu flachen Daten aufgelöst.

Funktionsvergleich

MerkmalJSONYAML
KommentareNeinJa (#)
Nachgestellte KommasNicht erlaubtNicht relevant
LesbarkeitGutBei tiefer Verschachtelung besser
Parsing-GeschwindigkeitSchnellerLangsamer
Mehrzeilige StringsNur escaptes \nBlock-Skalare
Mehrere Dokumente pro DateiNeinJa (----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