- Startseite
- Blog
- JSON und YAML im Vergleich: Unterschiede, Einsatz und Umwandlung
JSON und YAML im Vergleich: Unterschiede, Einsatz und Umwandlung
JSON und YAML sind zwei Schreibweisen für dieselbe Art von Daten: Namen mit Werten, Listen und verschachtelte Gruppen. JSON tauschen APIs und Web-Apps aus. YAML bearbeiten Menschen von Hand in Konfigurationsdateien: Docker Compose, Kubernetes, GitHub Actions, OpenAPI-Spezifikationen und vieles mehr. Wer beide kennt und zwischen ihnen wechseln kann, spart viel Ausprobieren.
Dieselben Daten in beiden Formaten
Hier eine kleine Einstellungsdatei in JSON:
{
"name": "devitools",
"version": "1.10",
"enabled": true,
"port": 8080,
"country": "NO",
"zip": "007",
"tags": ["web", "tools"],
"database": { "host": "localhost", "user": "admin" },
"note": ""
}Und dieselben Daten als YAML, umgewandelt mit dem kostenlosen Konverter JSON in YAML:
name: devitools
version: "1.10"
enabled: true
port: 8080
country: "NO"
zip: "007"
tags:
- web
- tools
database:
host: localhost
user: admin
note: ""YAML verzichtet auf geschweifte Klammern, die meisten Anführungszeichen und die Kommas und zeigt mit Einrückung, was zusammengehört.
Die wichtigsten Unterschiede
- Aufbau: JSON nutzt Klammern und Kommas, YAML Einrückung und Bindestriche. In YAML zählt die Einrückung, und dafür sind keine Tabulatoren erlaubt, nur Leerzeichen.
- Kommentare: YAML erlaubt Kommentare mit
#, JSON kennt gar keine. Schon deshalb sind die meisten Konfigurationsdateien YAML. - Lesbarkeit: YAML ist für Menschen leichter zu lesen und zu bearbeiten; JSON ist für Programme leichter zu erzeugen und zu prüfen und schwerer unbemerkt falsch zu schreiben.
- Strenge: JSON hat für alles genau eine Schreibweise. YAML hat viele (mehrere Textstile, Anker, mehrzeiliger Text), das ist flexibel, birgt aber Überraschungen.
- Kompatibilität: YAML 1.2 wurde so entworfen, dass gültiges JSON auch gültiges YAML ist; die meisten YAML-Tools lesen JSON-Dateien also direkt.
Wann welches Format?
- Nimm JSON für Daten, die Programme untereinander austauschen: APIs, Web-Apps, gespeicherte Daten, alles automatisch Erzeugte.
- Nimm YAML für Dateien, die Menschen schreiben und pflegen: Konfiguration, Deployment- und CI-Dateien, Metadaten in Dokumentationen, besonders wenn Kommentare helfen.
- Richte dich nach dem Tool: Erwartet ein Programm ein bestimmtes Format, nimm genau das. Beispiele für Kubernetes und GitHub Actions sind YAML, npms package.json ist JSON.
Die YAML-Fallen, die Konfigurationen kaputt machen
YAML errät den Typ von Werten ohne Anführungszeichen, und ältere YAML-1.1-Leser, die noch verbreitet sind, raten sehr großzügig:
country: NO # read as false by many YAML readers
version: 1.10 # read as the number 1.1
zip: 007 # may lose its zerosDas ist als „Norwegen-Problem“ bekannt, weil der Ländercode von Norwegen zu false wird. Wörter wie yes, no, on und off, Versionsnummern und Werte mit führenden Nullen sind gefährdet. Die Lösung ist einfach: in Anführungszeichen setzen. Der Konverter JSON in YAML macht das automatisch. Im Beispiel oben bleiben "NO", "1.10", "007" und die leere note in Anführungszeichen, während echte true/false-Werte und Zahlen wie 8080 so geschrieben werden, wie sie sind.
JSON in YAML umwandeln, Schritt für Schritt
- Öffne JSON in YAML und füge dein JSON in JSON-Eingabe ein, klicke auf Datei öffnen oder zieh eine .json-Datei in das Feld. Beispiel lädt ein Muster.
- Wähle die Einrückung: 2 Leerzeichen (am üblichsten, wie in den Beispielen von Kubernetes und GitHub Actions) oder 4 Leerzeichen.
- Klicke auf In YAML umwandeln und dann auf Kopieren oder Herunterladen.
Hat das JSON einen Fehler, zeigt der Konverter die genaue Zeile und Spalte. Die üblichen Ursachen erklärt JSON formatieren und validieren. Nach dem Umwandeln kannst du dem YAML #-Kommentare hinzufügen, um deine Einstellungen zu erklären.
Weitere JSON-Tools
- JSON-Formatierer: JSON lesbar machen und Fehler finden.
- JSON in CSV und JSON in XML: andere Formate für Tabellen und ältere Systeme. Siehe auch JSON in CSV umwandeln.
Wird mein JSON hochgeladen?
Nein. Die Umwandlung läuft in deinem Browser, deine Daten verlassen also nie dein Gerät. Unser Server speichert nur, dass eine Umwandlung stattfand, für das Tageslimit.
Häufige Fragen
Ist YAML eine Obermenge von JSON?
Fast. YAML 1.2 wurde so entworfen, dass JSON-Dokumente gültiges YAML sind, und in der Praxis lesen YAML-Tools normale JSON-Dateien ohne Änderungen.
Kann ich YAML hier zurück in JSON umwandeln?
Noch nicht. Dieses Tool wandelt nur von JSON in YAML um.
Warum stehen manche Werte im YAML in Anführungszeichen?
Weil YAML sie ohne Anführungszeichen anders lesen könnte: NO als false, 1.10 als 1.1, 007 als 7. Die Anführungszeichen erhalten sie genau so, wie sie im JSON standen.