JSON oder YAML
Fazit: JSON trennt mit Klammern, YAML mit Einrückung: Maschinen bekommen JSON, Menschen, die Konfiguration bearbeiten, bekommen YAML. Kommentare, Anker und Mehrdokumentstruktur überleben nicht.

Kurz gesagt: Verwenden Sie JSON für Maschine-zu-Maschine-Daten und YAML für Konfiguration, die Menschen bearbeiten; bevorzugen Sie YAML, wenn Sie Kommentare, mehrzeiligen Text oder Anker brauchen, und JSON, wenn jede Sprache dieselbe Payload ohne Mehrdeutigkeit parsen muss.
Seite an Seite
{
"server": {
"host": "127.0.0.1",
"port": 8080
}
}
server:
host: 127.0.0.1
port: 8080
Dieselbe Struktur. YAML lässt die Satzzeichen weg und gewinnt einen Platz für einen Kommentar.
Worin sie sich unterscheiden
| JSON | YAML | |
|---|---|---|
| Struktur | Klammern und Kommas | Einrückung |
| Kommentare | Keine | Ja |
| Strings | Doppelte Anführungszeichen, Escaping erforderlich | Meist nackt |
| Mehrzeiliger Text | \n-Escapes oder Arrays |
` |
| Wiederverwendung | Keine | Anker & und Aliase * |
| Mehrere Dokumente | In ein Array verpacken | ----Trenner |
| Parse-Geschwindigkeit | Schnell | Langsamer, Einrückungsregeln |
| Mehrdeutigkeit | Sehr niedrig | no als Boolean geparst, Einrückung um eins daneben |
Die letzte Zeile sind YAMLs echte Kosten. In YAML 1.1 ergibt country: NO den Boolean false, und version: 1.0 kann zu einem Float werden. JSON hat überhaupt keine implizite Typisierung.
Auswahl
JSON: Request- und Response-Bodies, Dienst-zu-Dienst-Nachrichten, JSON-Spalten in Datenbanken, alles, was in jeder Sprache identisch parsen muss.
YAML: Ökosysteme, in denen es der Standard ist (Kubernetes, Ansible, GitHub Actions, Docker Compose); Konfiguration, die Erklärung braucht; Dateien, die von langem Text dominiert werden, etwa Zertifikate, Skripte oder SQL.
Was die Konvertierung verliert
YAML → JSON: alle Kommentare, Ankerwiederverwendung (zu Duplikaten expandiert), alle Dokumente außer dem ersten und die ursprüngliche Schreibweise von Daten und Booleans.
JSON → YAML: die String/Zahl-Unterscheidung schwächt sich ab, "8080" und 8080 brauchen also beide ausdrückliches Quoting, um sicher zu bleiben.
Konvertieren Sie für Migrationen und einmalige Inspektion. Pflegen Sie nicht dieselbe Datei in zwei Formaten als parallele Ansichten.
FAQ
Wie soll ich zwischen JSON und YAML entscheiden?
Beginnen Sie damit, wer die Datei liest und pflegt: Verwenden Sie JSON, wenn ein Programm sie erzeugt, sie Sprachgrenzen überschreitet und vorhersehbar parsen muss; verwenden Sie YAML, wenn ein Mensch sie bearbeitet und Felderklärungen oder langen mehrzeiligen Text braucht. Sie konvertieren ineinander, aber pflegen Sie dieselbe Konfiguration nicht langfristig in beiden Formaten.
Warum erzeugt YAML mehr Typmehrdeutigkeit?
YAML hat implizite Typisierung, Werte wie NO, on oder 1.0 können also zu Booleans, Daten oder Zahlen werden. JSON hat nur ausdrückliche Typen: Ein String muss quotiert sein, was das Parsen sprachübergreifend vorhersehbarer macht.
Sollten Kommentare und Anker bei der Konvertierung von YAML nach JSON überleben?
Nein. YAML-Kommentare, Anker und mehrere Dokumente lassen sich in JSON nicht darstellen; Anker werden zu dupliziertem Inhalt expandiert. Müssen Sie sie bewahren, verwenden Sie eine YAML-Bibliothek mit Document-API statt eines Objekt-Roundtrips.