JSON vs YAML: Die Unterschiede
JSON (JavaScript Object Notation) und YAML(YAML Ain't Markup Language) sind beides Formate zur Datenserialisierung. Sie können dieselben Datenstrukturen darstellen, unterscheiden sich aber in Syntax und Einsatzgebieten.
JSON verwendet geschweifte Klammern, eckige Klammern und ist strikt formatiert. Es ist kompakt und wird von nahezu allen Programmiersprachen unterstützt. YAML nutzt Einrückungen statt Klammern und ist für Menschen besser lesbar.
Wann JSON verwenden?
APIs und Web: JSON ist das Standardformat für REST-APIs und Web-Kommunikation. Jeder Browser kann JSON nativ parsen.Datenaustausch: Für maschinelle Verarbeitung und Datenübertragung zwischen Systemen ist JSON ideal.
Strenge Validierung: JSON-Syntax ist eindeutig und lässt wenig Interpretationsspielraum. Fehler werden schnell erkannt.
Wann YAML verwenden?
Konfigurationsdateien: Docker Compose, Kubernetes, GitHub Actions, GitLab CI – alle nutzen YAML für ihre Konfiguration. Die Lesbarkeit macht das Bearbeiten einfacher.
Kommentare erforderlich: YAML unterstützt Kommentare mit #, JSON nicht. Für dokumentierte Konfigurationen ist YAML besser.Mehrzeilige Strings: YAML kann mehrzeiligen Text elegant darstellen, ohne Escape-Sequenzen.
YAML-Besonderheiten
Einrückung: YAML ist einrückungssensitiv – Leerzeichen definieren die Struktur. Tabs sind nicht erlaubt!Anker und Aliase: Mit &name und *name können Werte wiederverwendet werden – praktisch für sich wiederholende Konfigurationen.
Datentypen: YAML erkennt automatisch Strings, Zahlen, Booleans und Null. „yes" und „no" werden als Boolean interpretiert – Strings in Anführungszeichen setzen, wenn nötig.
Typische Fehler bei YAML
Tabs statt Spaces: YAML erlaubt nur Leerzeichen für Einrückung. Falsche Einrückungstiefe: Alle Elemente auf gleicher Ebene müssen gleich eingerückt sein.Ungeschützte Sonderzeichen: Doppelpunkte in Strings können als Key-Value-Trenner missverstanden werden.
Konvertierung in der Praxis
Die Konvertierung zwischen JSON und YAML ist verlustfrei– die Datenstruktur bleibt identisch. Nur YAML-spezifische Features wie Kommentare und Anker gehen bei der Konvertierung zu JSON verloren.
Tipp: Wenn du eine YAML-Datei debuggen musst, kann die Konvertierung zu JSON helfen, die Struktur zu verstehen – JSON macht die Hierarchie durch Klammern explizit sichtbar.
Tools und Bibliotheken
JavaScript: js-yaml für Node.js und Browser.Python: PyYAML oder ruamel.yaml.CLI: yq (YAML-Pendant zu jq) für Kommandozeilen- Verarbeitung.