alltools.one
Data‱
2025-06-21
‱
7 min
‱
alltools.one Team
JSONYAMLConversionConfigurationDevOps

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

KriteriumJSONYAML
Menschliche BearbeitungSchwieriger (Klammern, Kommas)Einfacher (saubere Syntax)
Maschinelles ParsenSchnellerLangsamer
KommentareNicht unterstĂŒtztUnterstĂŒtzt
DatenaustauschStandard (APIs)Selten
KonfigurationAkzeptabelBevorzugt
StriktheitStrikt (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

Published on 2025-06-21
JSON to YAML Conversion: A Complete Migration Guide | alltools.one