YAML oder JSON
JSON ist ein strenges, minimales Datenformat, das jede Programmiersprache gleich liest, und deshalb der Standard für APIs und Datenaustausch. YAML beschreibt dieselben Daten (Objekte, Listen, Strings, Zahlen, Booleans, null) mit Einrückung statt Klammern und erlaubt Kommentare, was es für von Hand geschriebene Konfigurationsdateien angenehmer macht. Jedes JSON-Dokument ist auch gültiges YAML 1.2, aber YAML hat mehr Fallstricke: Einrückungsfehler, Werte, die zu Booleans oder Datumsangaben werden, und unsichere Loader.

Dieselben Daten in beiden Formaten
Eine kleine Dienstkonfiguration in JSON:
{
"name": "web",
"replicas": 2,
"ports": [80, 443],
"env": {"DEBUG": "false"}
}Dasselbe in YAML:
# Web-Frontend name: web replicas: 2 ports: - 80 - 443 env: DEBUG: "false"
YAML lässt geschweifte und eckige Klammern, Kommas und die meisten Anführungszeichen weg und erlaubt einen Kommentar. Die Struktur entsteht durch Einrückung mit Leerzeichen; Tabs sind zum Einrücken nicht erlaubt.
Im direkten Vergleich
| JSON | YAML | |
|---|---|---|
| Kommentare | Nein | Ja (#) |
| Struktur | Geschweifte und eckige Klammern | Einrückung (nur Leerzeichen) |
| Anführungszeichen bei Strings | Immer | Meist optional |
| Mehrere Dokumente pro Datei | Nein | Ja (getrennt durch ---) |
| Block wiederverwenden | Nein | Anker und Aliase (&name, *name) |
| Datumswerte | Kein Typ, Strings | Manche Parser machen aus 2026-11-10 ein Datum |
| Typischer Einsatz | APIs, Datenaustausch, package.json | Kubernetes, Docker Compose, GitHub Actions, Ansible, OpenAPI |
Welche Fallstricke hat YAML?
- Implizite Booleans. Bei YAML-1.1-Parsern werden yes, no, on und off ohne Anführungszeichen zu true oder false. Klassisches Beispiel: In einer Liste von Ländercodes wird NO (Norwegen) zu false. Setzen Sie solche Werte in Anführungszeichen: "NO".
- Zahlen, die keine sind. Eine Version 1.10 wird zur Zahl 1.1, und eine Postleitzahl wie 01234 kann die führende Null verlieren oder oktal gelesen werden. Setzen Sie alles, was eigentlich eine Kennung ist, in Anführungszeichen.
- Einrückung. Ein Leerzeichen zu viel verschiebt einen Schlüssel ohne Fehlermeldung unter den falschen Elternknoten. Nutzen Sie einen Editor, der Einrückung anzeigt, und validieren Sie die Datei.
- Unsichere Loader. Manche YAML-Bibliotheken können aus Tags beliebige Objekte erzeugen, was zu Sicherheitslücken mit Codeausführung geführt hat. Nutzen Sie die sichere Ladefunktion (etwa yaml.safe_load in Python); js-yaml 4 ist standardmäßig sicher.
Was sollten Sie wählen?
- Maschine zu Maschine (API-Antworten, Message-Queues, Logs): JSON, einfacher zu parsen, eindeutig und von Browsern nativ unterstützt.
- Dateien, die Menschen bearbeiten (Deployment-Konfigurationen, CI-Pipelines): YAML, wegen Kommentaren und Lesbarkeit, mehrdeutige Werte in Anführungszeichen und mit Validierung in der CI.
- Meist entscheidet das Tool: Kubernetes akzeptiert beides, GitHub Actions nur YAML, package.json nur JSON.
Die Umwandlung zwischen beiden verliert keine Daten; nur YAML-Kommentare, Anker und Dokumenttrenner haben kein Gegenstück in JSON. Um zu sehen, welche Werte zu Strings, Zahlen oder Booleans wurden, wandeln Sie Ihr YAML in JSON um und lesen das Ergebnis.
Vor dem Deployment prüfen
Egal welches Format Sie schreiben: Prüfen Sie es in der CI. Eine JSON-Datei ist ungültig, sobald ein Komma oder Anführungszeichen fehlt, und eine YAML-Datei kann gültig sein und trotzdem etwas anderes bedeuten als beabsichtigt. Eine YAML-Konfiguration in JSON umzuwandeln und das Ergebnis zu lesen, zeigt schnell, welche Werte zu Strings, Zahlen, Booleans oder null wurden.
FAQ
Ist JSON gültiges YAML?
Ja für YAML 1.2: Ein JSON-Dokument kann von einem YAML-1.2-Parser gelesen werden. Ältere YAML-1.1-Parser lesen ebenfalls fast jedes JSON.
Kann man Kommentare in eine JSON-Datei schreiben?
Nicht in Standard-JSON. Manche Tools akzeptieren JSONC oder JSON5, ein strenger JSON-Parser lehnt sie aber ab.
Wie wandle ich YAML in JSON um?
Fügen Sie das YAML in den YAML-in-JSON-Konverter dieser Website ein; der JSON-in-YAML-Konverter macht das Umgekehrte. Beide laufen im Browser.
Aktualisiert: November 2026. Die Dateien werden in Ihrem Browser verarbeitet und nicht hochgeladen.