JSON-zu-YAML-Konvertierung: Ein vollständiger Migrationsleitfaden
JSON und YAML repräsentieren dieselben Datenstrukturen mit unterschiedlicher Syntax. Die Konvertierung zwischen ihnen ist in den meisten Fällen unkompliziert, aber Grenzfälle bei Typen, mehrzeiligen Strings und Kommentaren erfordern Aufmerksamkeit. Dieser Leitfaden behandelt die vollständige Zuordnung zwischen den Formaten.
Syntax-Mapping
Objekte / Zuordnungen
JSON:
{
"database": {
"host": "localhost",
"port": 5432,
"name": "myapp"
}
}
YAML:
database:
host: localhost
port: 5432
name: myapp
Arrays / Sequenzen
JSON:
{
"servers": ["web1", "web2", "web3"]
}
YAML:
servers:
- web1
- web2
- web3
Verschachtelte Strukturen
JSON:
{
"services": [
{
"name": "api",
"ports": [8080, 8443],
"env": {"NODE_ENV": "production"}
}
]
}
YAML:
services:
- name: api
ports:
- 8080
- 8443
env:
NODE_ENV: production
Konvertieren Sie sofort mit unserem JSON-zu-YAML-Konverter.
Grenzfälle beachten
1. Kommentare
YAML unterstützt Kommentare; JSON nicht. Bei der Konvertierung von YAML zu JSON gehen alle Kommentare verloren:
# This comment will be lost in JSON
database:
host: localhost # Also lost
2. Mehrzeilige Strings
YAML hat eine leistungsfähige Mehrzeilen-Syntax, die JSON fehlt:
description: |
This is a multi-line
string that preserves
line breaks.
In JSON wird daraus:
{
"description": "This is a multi-line\nstring that preserves\nline breaks.\n"
}
3. Typ-Mehrdeutigkeit
YAML erkennt Typen automatisch, was zu Problemen führen kann:
version: 1.0 # Float, not string "1.0"
port: 080 # Octal 64, not string "080"
country: NO # Boolean false, not string "NO"
In JSON sind Typen explizit:
{
"version": "1.0",
"port": "080",
"country": "NO"
}
Bei der Konvertierung von JSON zu YAML Anführungszeichen um Werte setzen, die fehlinterpretiert werden könnten.
4. Null-Werte
Beide unterstützen null, aber die Syntax unterscheidet sich:
value: null # Explicit
value: ~ # YAML shorthand
value: # Empty value = null
{ "value": null }
5. Sonderzeichen in Schlüsseln
JSON-Schlüssel können jedes Unicode-Zeichen enthalten. YAML-Schlüssel mit Sonderzeichen benötigen Anführungszeichen:
"content-type": "application/json" # Hyphen needs quotes
simple_key: value # Underscore is fine
Kommandozeilen-Konvertierung
Mit yq (YAML-Prozessor)
# JSON to YAML
yq -P input.json > output.yaml
# YAML to JSON
yq -o=json input.yaml > output.json
Mit Python
# JSON to YAML
python3 -c "import json, yaml, sys; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))" < input.json > output.yaml
# YAML to JSON
python3 -c "import json, yaml, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml > output.json
Mit jq + yq zusammen
# Process JSON, output as YAML
cat config.json | jq '.database' | yq -P
Wann welches Format verwenden
| Kriterium | JSON | YAML |
|---|---|---|
| Menschliche Bearbeitung | Schwieriger (Klammern, Kommas) | Einfacher (saubere Syntax) |
| Maschinelles Parsen | Schneller | Langsamer |
| Kommentare | Nicht unterstützt | Unterstützt |
| Datenaustausch | Standard (APIs) | Selten |
| Konfiguration | Akzeptabel | Bevorzugt |
| Striktheit | Strikt (gut) | Flexibel (riskant) |
JSON verwenden für: API-Kommunikation, Datenspeicherung, maschinell generierte Konfigurationen, Browser-Umgebungen.
YAML verwenden für: Manuell bearbeitete Konfigurationen, Docker Compose, Kubernetes, CI/CD-Pipelines, Ansible.
Für einen tieferen Vergleich siehe unseren Artikel YAML vs JSON.
FAQ
Ist YAML eine Obermenge von JSON?
Ja, seit YAML 1.2 (2009) ist jedes gültige JSON-Dokument auch gültiges YAML. Ein YAML-Parser kann JSON direkt parsen. Umgekehrt gilt dies jedoch nicht — YAML-Funktionen wie Kommentare, Anker und mehrzeilige Strings haben kein JSON-Äquivalent.
Was ist schneller zu parsen, JSON oder YAML?
JSON ist in praktisch allen Sprachen deutlich schneller zu parsen. JSON-Parser sind einfacher, da das Format weniger Syntax zu verarbeiten hat. Für Konfigurationsdateien, die einmalig beim Start geladen werden, ist der Unterschied vernachlässigbar. Für Hochdurchsatz-Datenverarbeitung ist JSON die klare Wahl.
Verwandte Ressourcen
- JSON-zu-YAML-Konverter — Sofort zwischen Formaten konvertieren
- YAML vs JSON — Detaillierter Formatvergleich
- YAML-Syntax-Tutorial — YAML von Grund auf lernen
🛠️ Jetzt ausprobieren: JSON to YAML | YAML to JSON — 100% kostenlos, alles wird in Ihrem Browser verarbeitet. Keine Daten hochgeladen.