YAML to JSON Converter
YAML ⇄ JSON Converter
Konvertiere YAML in JSON und JSON in YAML – bidirektional, live und lokal im Browser. Mit Syntax-Highlighting, Fehlererkennung und Download.
Datenschutz-Garantie: Alle Konvertierungen finden zu 100% lokal in deinem Browser statt. Es werden keine Daten an Server gesendet. Perfekt für sensible Konfigurationsdateien, Kubernetes-Manifeste oder API-Daten.
Inhaltsverzeichnis
Schnellübersicht
- YAML → JSON: Konvertierung mit Live-Vorschau
- JSON → YAML: Bidirektionale Konvertierung
- Syntax-Highlighting: Für beide Formate
- Fehlererkennung: Detaillierte Fehlermeldungen
- Beispiele: Kubernetes, Docker, CI/CD, API
- Theorie: YAML vs. JSON im Vergleich
- Geschichte: Von YAML 1.0 zur Cloud-Native-Ära
- FAQ: Häufige Fragen zu YAML und JSON
1. YAML ⇄ JSON Konverter
Wähle die Konvertierungsrichtung, gib den Inhalt ein und erhalte sofort das Ergebnis.
- Tab: Fügt 2 Leerzeichen ein (im Editor)
- Strg/Cmd + Enter: Konvertierung ausführen
- Strg/Cmd + Shift + S: Richtung tauschen
- Strg/Cmd + S: Ausgabe herunterladen
- Strg/Cmd + Shift + C: Ausgabe kopieren
2. YAML vs. JSON verstehen
Beide Formate dienen dem Datenaustausch, haben aber unterschiedliche Stärken.
YAML Grundlagen
YAML (YAML Ain't Markup Language) ist ein menschenfreundliches Datenformat.
- Einrückung: 2 Spaces (keine Tabs!)
- Kommentare: Mit
# - Strings: Meist ohne Anführungszeichen
- Listen: Mit
-Prefix - Mehrzeilig: Mit
|oder>
JSON Grundlagen
JSON (JavaScript Object Notation) ist ein kompaktes Datenformat.
- Doppelte Anführungszeichen (Pflicht)
- Keine Kommentare erlaubt
- Keine trailing commas
- 6 Datentypen: String, Number, Bool, Null, Object, Array
- Universell von allen Sprachen unterstützt
YAML vs. JSON
Wann welches Format verwenden?
- YAML: Konfigurationen (K8s, Docker, CI/CD)
- JSON: APIs, Datenaustausch, Datenbanken
- YAML ist lesbarer für Menschen
- JSON ist schneller zu parsen
- YAML unterstützt Kommentare, JSON nicht
- JSON ist standardisiert (ECMA-404, RFC 8259)
YAML-Fallstricke
Häufige Fehler bei YAML:
- Tabs statt Spaces: YAML erlaubt keine Tabs!
- Falsche Einrückung: Muss konsistent sein
- Doppelte Keys: Der letzte gewinnt
- Norway-Problem:
NOwird zufalse - Ja/Nein:
yes,no,on,off= Boolean - Zahlen mit führender 0: Werden oktal interpretiert
- In YAML 1.1 wird
NOals Boolean false interpretiert! - Auch betroffen:
yes,no,on,off,y,n - Das Land Norwegen (Ländercode
NO) wird so zufalse - Lösung: Wert in Anführungszeichen setzen:
country: "NO" - In YAML 1.2 wurde dieses Verhalten korrigiert
3. Feature-Vergleich
Direkter Vergleich der beiden Formate:
| Feature | YAML | JSON |
|---|---|---|
| Lesbarkeit | Sehr gut (Einrückung) | Gut (Klammern) |
| Kommentare | ✓ Mit # | ✗ Nicht erlaubt |
| Datentypen | Erweitert (Anker, Aliase) | 6 native Typen |
| Multi-Dokumente | ✓ Mit --- | ✗ Nicht standard |
| Anker & Aliase | ✓ Ja | ✗ Nein |
| Parsing-Geschwindigkeit | Langsamer | Schneller |
| Standardisierung | YAML 1.2 (2009) | ECMA-404, RFC 8259 |
| Verwendung | K8s, Docker, CI/CD | APIs, NoSQL, Web |
| Tab-Einrückung | ✗ Verboten | N/A (Klammern) |
| Binärdaten | ✓ Base64 mit !!binary | ✗ Nur Base64-String |
4. Geschichte von YAML
Von "Yet Another Markup Language" zu "YAML Ain't Markup Language".
YAML wird veröffentlicht
Clark Evans, Ingy döt Net und Oren Ben-Kiki veröffentlichen YAML 1.0. Der ursprüngliche Name: "Yet Another Markup Language" – später umbenannt in "YAML Ain't Markup Language" (rekursives Akronym).
YAML 1.1
Die Version 1.1 wird veröffentlicht. Sie führt das berüchtigte Norway-Problem ein: NO wird als Boolean false interpretiert. Auch yes, no, on, off werden zu Booleans.
YAML in Ruby on Rails
Ruby on Rails führt YAML-Konfigurationsdateien ein (database.yml, locales). YAML wird populär als Konfigurationsformat für Web-Frameworks.
YAML 1.2 Standard
YAML 1.2 wird veröffentlicht. Das Norway-Problem wird behoben: NO ist nun ein String. Die Spezifikation wird klarer und JSON-kompatibler.
Kubernetes & Docker
Kubernetes wählt YAML als primäres Manifest-Format. Docker Compose nutzt YAML für Multi-Container-Definitionen. YAML wird zum De-facto-Standard für Cloud-Native-Konfigurationen.
CI/CD-Revolution
GitLab CI, GitHub Actions, CircleCI und Travis CI setzen auf YAML für Pipeline-Definitionen. YAML ist aus der DevOps-Welt nicht mehr wegzudenken.
Cloud-Native-Standard
YAML ist der De-facto-Standard für Konfigurationen in der Cloud-Native-Welt. Helm Charts, Ansible Playbooks, OpenAPI und Serverless-Frameworks nutzen YAML. Alternativen wie TOML und Pkl (Apple) gewinnen an Bedeutung.
5. FAQ – Häufige Fragen
Häufige Fragen zu YAML & JSON
YAML ist ein rekursives Akronym und steht für "YAML Ain't Markup Language".
Ursprünglich stand es für "Yet Another Markup Language" – wurde aber umbenannt, um zu betonen, dass YAML keine Auszeichnungssprache ist, sondern ein reines Datenformat wie JSON.
Merksatz: YAML ist wie JSON – nur lesbarer.
Die häufigsten YAML-Fehler:
- Tabs statt Spaces: YAML erlaubt keine Tabs! Nur Leerzeichen verwenden.
- Inkonsistente Einrückung: Alle Ebenen müssen gleich eingerückt sein (meist 2 Spaces).
- Doppelte Keys: Der letzte Wert gewinnt – oft unerwartet.
- Falsche Quotes: Bei Sonderzeichen oder Sonderwerten Quotes verwenden.
- Norway-Problem:
NO,yes,onwerden zu Booleans. - Fehlende Doppelpunkte: Nach jedem Key muss ein
:stehen. - Falsche Listen:
- itemmuss am Zeilenanfang oder nach Einrückung stehen.
In YAML 1.1 werden bestimmte Strings als Boolean interpretiert:
yes,Yes,YES→trueno,No,NO→falseon,On,ON→trueoff,Off,OFF→falsey,n→true/false
Problem: Der Ländercode NO (Norwegen) wird zu false!
Lösung: In Anführungszeichen setzen: country: "NO"
In YAML 1.2 wurde dieses Verhalten korrigiert.
YAML verwenden für:
- Konfigurationsdateien: Kubernetes, Docker Compose, Ansible
- CI/CD-Pipelines: GitHub Actions, GitLab CI, CircleCI
- Dateien mit Kommentaren: JSON erlaubt keine
- Mehrzeilige Strings: YAML hat
|und> - Menschenlesbarkeit: Weniger Klammern und Anführungszeichen
JSON verwenden für:
- APIs: Standard für REST
- Performance: Schneller zu parsen
- Datenaustausch: Universell unterstützt
- Speicherung: In NoSQL-Datenbanken (MongoDB)
- Web-Sicherheit: Keine Code-Ausführung wie bei YAML
YAML hat einige sicherheitsrelevante Fallstricke:
- Code-Ausführung: YAML unterstützt
!!python/objectTags, die beliebigen Code ausführen können. Niemals unsichere Parser verwenden! - Billion Laughs Attack: Anker und Aliase können zu exponentieller Expansion führen – DoS
- Norway-Problem: Typ-Verwechslungen können zu Fehlern führen
Sicherheits-Tipps:
- Safe Loader verwenden (z.B.
yaml.safe_load()in Python) - Keine Tags wie
!!python/...erlauben - Größenlimits setzen für Anker/Aliase
- Schema-Validierung nach dem Parsen
Ja! YAML unterstützt Kommentare mit #:
# Dies ist ein Kommentar name: IT-Grundlagen # Inline-Kommentar version: 1.0
Wichtig: Beim Konvertieren YAML → JSON gehen Kommentare verloren, da JSON keine Kommentare kennt!
Anker (&) und Aliase (*) ermöglichen Wiederverwendung von Daten:
defaults: &defaults adapter: postgres host: localhost development: <<: *defaults database: dev_db
Vorteile:
- DRY-Prinzip (Don't Repeat Yourself)
- Weniger Redundanz
- Leichtere Wartung
Nachteil: Beim Konvertieren zu JSON werden Anker aufgelöst und die Struktur wird größer.
YAML bietet zwei Möglichkeiten für mehrzeilige Strings:
1. Literal Block (|): Behält Zeilenumbrüche
description: | Dies ist ein mehrzeiliger Text mit Zeilenumbrüchen.
2. Folded Block (>): Faltet Zeilenumbrüche zu Leerzeichen
description: > Dies ist ein mehrzeiliger Text der zu einem einzigen Absatz gefaltet wird.
Chomping-Indikatoren:
|-oder>-: Kein finaler Zeilenumbruch|oder>: Ein finaler Zeilenumbruch|+oder>+: Alle finalen Zeilenumbrüche behalten
YAML:
.yaml– Empfohlen (offiziell).yml– Häufig verwendet (z.B. Docker Compose)
JSON:
.json– Standard.jsonc– JSON with Comments (VS Code).json5– JSON5-Format (erweitert).geojson– GeoJSON.ndjson– Newline Delimited JSON
Ja! YAML wird von fast allen Programmiersprachen unterstützt:
- Python:
PyYAML,ruamel.yaml - JavaScript:
js-yaml,yaml - Java:
SnakeYAML,Jackson YAML - Ruby:
Psych(Standard) - Go:
gopkg.in/yaml.v3 - Rust:
serde_yaml - C#:
YamlDotNet - PHP:
Symfony YAML
Tipp: Immer Safe Loader verwenden, um Code-Ausführung zu verhindern!
Zusammenfassung
Die wichtigsten Punkte
- YAML = "YAML Ain't Markup Language" (rekursives Akronym)
- YAML ist lesbarer, JSON ist schneller
- Einrückung: Nur Spaces, niemals Tabs
- Kommentare: In YAML mit
#, in JSON nicht erlaubt - Norway-Problem:
NOwird in YAML 1.1 zufalse - Anker & Aliase: YAML-Feature für DRY-Prinzip
- Verwendung YAML: Kubernetes, Docker, CI/CD, Ansible
- Verwendung JSON: APIs, Datenaustausch, NoSQL
- Sicherheit: Safe Loader verwenden, keine Code-Ausführung
- Konvertierung: Kommentare und Anker gehen bei YAML → JSON verloren
- Unser Tool: Bidirektionale Live-Konvertierung im Browser
Weitere Tools
Formatiere, validiere und minifiziere JSON mit Syntax-Highlighting.
Zum ToolFormatiere und validiere XML-Dokumente mit Syntax-Highlighting.
Zum ToolKonvertiere JSON-Arrays in CSV-Tabellen für Excel.
Zum ToolErstelle Cron-Ausdrücke mit visueller Oberfläche.
Zum Tool