JSON ↔ YAML Konverter — Bidirektional
Füge JSON links ein und erhalte YAML rechts — oder umgekehrt. Beide Panels sind in Echtzeit editierbar und synchronisieren sich automatisch. Enthält Schaltflächen zum Formatieren von JSON, Tauschen und Kopieren. Die Konvertierung läuft vollständig im Browser ohne Datenübertragung an Server.
Wie es funktioniert
Geschichte und Einsatzgebiete von JSON und YAML
JSON (JavaScript Object Notation) wurde Anfang der 2000er Jahre von Douglas Crockford als leichtgewichtiges Datenaustauschformat eingeführt, das auf der JavaScript-Objektliteral-Syntax basiert. Die strenge Grammatik — doppelte Anführungszeichen, keine abschließenden Kommas, keine Kommentare — macht es eindeutig und trivial zu parsen. JSON löste XML in Web-APIs schnell ab, da es kürzer ist und nativ zu JavaScript passt.
YAML (YAML Ain't Markup Language) wurde 2001 von Clark Evans und Ingy döt Net mit dem Ziel erstellt, menschenfreundlicher zu sein. YAML 1.2 ist technisch eine Obermenge von JSON — jedes gültige JSON-Dokument ist gültiges YAML — fügt aber einrückungsbasierte Struktur, Kommentare, mehrzeilige Zeichenketten und Typinferenz hinzu, was es für manuell bearbeitete Konfigurationsdateien komfortabler macht.
Wann JSON, wann YAML verwenden
JSON eignet sich hervorragend, wenn Maschinen die Daten lesen: REST-APIs, Datenbankeinträge, Inter-Service-Kommunikation und localStorage. Die Einfachheit bedeutet, dass praktisch jede Programmiersprache einen eingebauten JSON-Parser hat, und die strengen Syntaxregeln eliminieren Mehrdeutigkeiten. Wenn der primäre Konsument Code ist, ist JSON fast immer die richtige Wahl.
YAML glänzt in Konfigurationsdateien, die von Menschen bearbeitet werden: Docker Compose, Kubernetes-Manifeste, GitHub Actions-Workflows und Ansible-Playbooks verwenden standardmäßig YAML. Kommentare ermöglichen Inline-Dokumentation, mehrzeilige Zeichenketten halten lange Werte lesbar, und das Fehlen von geschweiften Klammern macht hierarchische Konfigurationen weniger überladen.
Häufige Fallstricke bei der Konvertierung
YAMLs Einrückungsempfindlichkeit ist die häufigste Fehlerquelle. Im Gegensatz zu JSON-Klammern ändert ein falsch gesetztes Leerzeichen die Struktur. YAML führt auch automatische Typinferenz durch: ein nacktes yes wird zu boolean true, und 0755 kann als Oktalzahl interpretiert werden. Dieser Konverter setzt Anführungszeichen um Zeichenketten, die falsch interpretiert werden könnten, um den ursprünglichen Typ zu erhalten.
Sonderzeichen stellen eine weitere Herausforderung dar. Doppelpunkte gefolgt von einem Leerzeichen (: ), Rautenzeichen (#) und Sonderzeichen am Anfang müssen in YAML in Anführungszeichen gesetzt werden. Dieser Konverter behandelt diese Fälle automatisch, aber erweiterte YAML-Funktionen wie Anker, Aliase und mehrzeilige Block-Skalare sind außerhalb des Geltungsbereichs und zeigen eine klare Fehlermeldung.
Häufige Fragen
›Ist YAML eine Obermenge von JSON?
Ja. YAML 1.2 ist eine strikte Obermenge von JSON, was bedeutet, dass jedes gültige JSON-Dokument gültiges YAML ist. Umgekehrt gilt das nicht immer: YAML-Funktionen wie Kommentare, Anker und Block-Skalare haben kein JSON-Äquivalent.
›Wofür wird YAML hauptsächlich verwendet?
YAML ist am häufigsten in Konfigurationsdateien zu finden: Docker Compose (docker-compose.yml), Kubernetes-Manifeste, GitHub Actions (.github/workflows), Ansible-Playbooks. Sein lesbarer Stil eignet sich für Dateien, die Entwickler manuell bearbeiten.
›JSON oder YAML für Konfigurationsdateien?
YAML gewinnt in der Regel für menschlich bearbeitete Konfigurationen, da es Kommentare unterstützt und weniger rauschig ist. JSON ist besser für maschinell generierte oder konsumierte Konfigurationen, da das Format strenger ist. Viele Werkzeuge (ESLint, Prettier, tsconfig) akzeptieren beide.
›Wie behandelt YAML Sonderzeichen?
Zeichenketten mit Doppelpunkt gefolgt von Leerzeichen, führenden Sonderzeichen ({, [, #, usw.) oder Werten, die wie Boolesche Werte oder Zahlen aussehen, müssen in Anführungszeichen gesetzt werden. Einfache Anführungszeichen deaktivieren alle Escapings; doppelte Anführungszeichen verwenden ähnliche Backslash-Escapes wie JSON. Dieser Konverter setzt automatisch Anführungszeichen, wo nötig.
›Ist die Konvertierung von JSON zu YAML verlustfrei?
Für die von JSON unterstützten Typen (Zeichenketten, Zahlen, Boolesche Werte, null, Objekte, Arrays) ist die Konvertierung verlustfrei. Das einzige potenzielle Problem ist YAMLs Typinferenz bei unquotierten Werten, weshalb dieser Konverter Zeichenketten in Anführungszeichen setzt, die falsch interpretiert werden könnten.
›Wie konvertiere ich YAML in Python zu JSON?
Verwende die PyYAML-Bibliothek: import yaml, json; data = yaml.safe_load(open('datei.yaml')); print(json.dumps(data, indent=2)). Die safe_load-Funktion verhindert die Ausführung beliebiger YAML-Tags, was für die Sicherheit wichtig ist.
›Wie konvertiere ich JSON in Node.js zu YAML?
Mit dem js-yaml-Paket: const yaml = require('js-yaml'); const obj = JSON.parse(fs.readFileSync('datei.json')); console.log(yaml.dump(obj)). Für einen abhängigkeitsfreien Ansatz schreibt man den YAML-Serializer manuell, was dieser Konverter tut.
›Welche YAML-Funktionen werden nicht unterstützt?
Dieser Konverter lässt absichtlich erweiterte YAML-Funktionen weg: Anker (&anker), Aliase (*alias), Typ-Tags (!!int, !!str), mehrzeilige Block-Skalare (| und >), Dokumenttrenner (---). Diese decken weniger als 5% des realen YAML ab. Für diese Fälle verwende eine vollständige YAML-Bibliothek.
Verwandte Tools
Zuletzt aktualisiert: