So verwenden Sie den Konverter JSON ↔ YAML
- Wählen Sie die Richtung: JSON → YAML oder YAML → JSON.
- Fügen Sie Ihr Dokument in das Eingabefeld ein oder tippen Sie es direkt ein.
- Die umgewandelte Ausgabe erscheint sofort. Ist die Eingabe ungültig, verweist die Fehlermeldung auf die Zeile, die nicht geparst werden konnte.
- Kopieren Sie das Ergebnis in Ihr Manifest, Ihre Pipeline-Datei oder Ihren API-Client.
Die Umwandlung läuft vollständig in Ihrem Browser, sodass Konfigurationsdateien mit internen Hostnamen oder Zugangsdaten nie hochgeladen oder auf unseren Servern gespeichert werden.
JSON und YAML: dieselben Daten, zwei Notationen
JSON (JavaScript Object Notation) und YAML (YAML Ain't Markup Language) beschreiben dieselben Grundstrukturen: Mappings (Objekte mit Schlüssel-Wert-Paaren), Sequenzen (Arrays) und Skalare (Strings, Zahlen, Booleans und null). Seit YAML 1.2 ist jedes gültige JSON-Dokument auch gültiges YAML, weshalb die Umwandlung von JSON in YAML verlustfrei ist. In die andere Richtung ist sie meist ebenfalls verlustfrei, aber YAML hat Funktionen, die JSON fehlen, etwa Kommentare, Anker und mehrzeilige Blockstrings, und diese werden beim Erzeugen von JSON eingeebnet oder weggelassen.
Entwickler wechseln ständig zwischen den beiden:
- Kubernetes-Manifeste werden normalerweise in YAML geschrieben, während
kubectl get -o jsonund die API selbst JSON sprechen. - Docker-Compose-Dateien (
compose.yaml) sind YAML; die Umwandlung in JSON hilft, wenn sie aus Skripten erzeugt werden. - GitHub Actions und die meisten CI-Systeme definieren Workflows in YAML.
- OpenAPI-Spezifikationen können in beiden Formaten geschrieben werden, und viele Tools akzeptieren beide.
Hier ist dasselbe Objekt in beiden Notationen:
{"service": "web", "replicas": 3, "ports": [80, 443], "debug": false}
service: web
replicas: 3
ports:
- 80
- 443
debug: false
Häufige YAML-Stolperfallen
Das „Norwegen-Problem“
YAML 1.1 behandelt unquotiertes yes, no, on, off, y und n (in verschiedenen Schreibweisen mit Groß- und Kleinbuchstaben) als Booleans. Eine Liste von Ländercodes macht Norwegen daher in Parsern, die YAML 1.1 folgen, zu false:
countries:
- GB
- NO # YAML 1.1: false YAML 1.2 Core-Schema: "NO"
- SE
YAML 1.2 beschränkt Booleans auf true und false, doch viele weit verbreitete Bibliotheken verhalten sich standardmäßig noch wie 1.1. Die sichere Gewohnheit ist, jeden String in Anführungszeichen zu setzen, der mit einem anderen Typ verwechselt werden könnte: "NO", "on", "1.10", "0755". Versionsnummern sind eine klassische Falle: Unquotiertes 1.10 wird zur Zahl 1.1.
Einrückung
YAML drückt Verschachtelung durch Einrückung aus, und Tabulatoren sind für die Einrückung nicht erlaubt. Ein einziges falsch ausgerichtetes Leerzeichen verändert die Struktur oder bricht das Parsen ab:
spec:
containers:
- name: app
image: nginx
ports: # ein Leerzeichen zu wenig: Parse-Fehler
- containerPort: 80
Anker und Aliase
In YAML können Sie einen Block einmal mit &name definieren und mit *name wiederverwenden, oft in Kombination mit dem Merge-Schlüssel <<. JSON kennt nichts Vergleichbares, daher erweitert der Konverter jeden Alias zu einer vollständigen Kopie:
defaults: &defaults
restart: always
logging: json
web:
<<: *defaults
image: nginx
Beachten Sie, dass der Merge-Schlüssel eine Erweiterung von YAML 1.1 ist; nicht jeder Parser unterstützt ihn.
Tipps für saubere Umwandlungen
- Kommentare (
# ...) werden bei der Umwandlung von YAML in JSON verworfen, weil JSON keine Kommentarsyntax hat. Behalten Sie die YAML-Datei als maßgebliche Quelle, wenn die Kommentare wichtig sind. - Mehrzeilige Blockstrings (
|behält Zeilenumbrüche,>faltet sie zu Leerzeichen) werden in JSON zu gewöhnlichen Strings mit\n-Escapes. - Große Ganzzahlen jenseits von 253 können in JavaScript-basierten Tools an Genauigkeit verlieren. Setzen Sie IDs, die exakt bleiben müssen, in Anführungszeichen.
- Um das Ergebnis weiter aufzuräumen, schicken Sie es durch den JSON-Formatter oder den YAML-Formatter & Validator.
--- getrennt sind, wie es bei Kubernetes-Bündeln oft der Fall ist. JSON kennt dieses Konzept nicht, teilen Sie Dateien mit mehreren Dokumenten daher vor der Umwandlung auf oder erwarten Sie in der Ausgabe nur ein Dokument.Häufig gestellte Fragen
Ist jede JSON-Datei gültiges YAML?
Unter YAML 1.2 ja: Es wurde als Obermenge von JSON entworfen. Sie können JSON direkt in die meisten YAML-Parser einspeisen. Die Umwandlung in YAML im Blockstil macht es einfach leichter les- und bearbeitbar.
Warum hat sich der Typ meines YAML-Werts nach der Umwandlung geändert?
Unquotierte Skalare werden vom Parser aufgelöst. Werte wie no, off, 1e3, 0x1F oder 2024-01-01 können je nach YAML-Version und Bibliothek zu Booleans, Zahlen oder Datumswerten werden. Setzen Sie sie in Anführungszeichen, damit sie Strings bleiben.
Kann ich in YAML Tabulatoren verwenden?
Nein. Die YAML-Spezifikation verbietet Tabulatorzeichen für die Einrückung. Verwenden Sie Leerzeichen, üblicherweise zwei pro Ebene, und stellen Sie Ihren Editor so ein, dass er automatisch Leerzeichen einfügt.
Überleben Kommentare einen Hin- und Rückweg?
Nein. Kommentare verschwinden, sobald YAML in JSON umgewandelt wird, und lassen sich bei der Rückumwandlung nicht wiederherstellen. Bewahren Sie Kommentare in der ursprünglichen YAML-Datei auf.
Aktualisiert