JSON / YAML Konverter/ JSON ↔ YAML

Bidirektionale Konvertierung zwischen JSON und YAML — Richtung sofort umschalten mit benutzerdefiniertem JSON-Einzug.

JSON
YAML

Hat dieses Tool Ihr Problem gelöst?

Code-Beispiele

JavaScript (js-yaml)
// npm install js-yaml
import yaml from 'js-yaml';

// JSON → YAML
const obj = { name: 'Alice', scores: [100, 95] };
const yamlStr = yaml.dump(obj, { indent: 2 });
// name: Alice
// scores:
//   - 100
//   - 95

// YAML → JSON
const yamlInput = `
name: Alice
scores:
  - 100
  - 95
`;
const parsed = yaml.load(yamlInput);
JSON.stringify(parsed, null, 2);
// { "name": "Alice", "scores": [100, 95] }
Python (PyYAML)
# pip install pyyaml
import yaml, json

# JSON → YAML
data = {"name": "Alice", "scores": [100, 95]}
yaml_str = yaml.dump(data, default_flow_style=False,
                      allow_unicode=True, indent=2)
# name: Alice
// scores:
// - 100
// - 95

# YAML → JSON
with open('config.yaml') as f:
    data = yaml.safe_load(f)  # use safe_load!
json_str = json.dumps(data, indent=2, ensure_ascii=False)

# Stream large files
for doc in yaml.safe_load_all(open('multi.yaml')):
    print(json.dumps(doc))
Go
// go get gopkg.in/yaml.v3
import (
  "encoding/json"
  "gopkg.in/yaml.v3"
)

// YAML → JSON
yamlStr := []byte("name: Alice\nage: 30")
var data map[string]interface{}
yaml.Unmarshal(yamlStr, &data)
jsonBytes, _ := json.MarshalIndent(data, "", "  ")

// JSON → YAML
jsonStr := []byte(`{"name":"Alice","age":30}`)
var obj interface{}
json.Unmarshal(jsonStr, &obj)
yamlBytes, _ := yaml.Marshal(obj)
// age: 30
// name: Alice
CLI Tools
# yq: YAML/JSON Swiss Army knife
# brew install yq  /  apt install yq

# YAML → JSON
yq -o=json config.yaml

# JSON → YAML
yq -P config.json

# In-place conversion
yq -i -o=yaml config.json

# Python one-liner: JSON → YAML
python3 -c "
import sys, json, yaml
print(yaml.dump(json.load(sys.stdin),
      default_flow_style=False, allow_unicode=True))
" < config.json

Häufig gestellte Fragen

Was ist die Beziehung zwischen YAML und JSON?
YAML ist eine Obermenge von JSON — gültiges JSON ist auch gültiges YAML. YAML fügt hinzu: Kommentare (#), mehrzeilige Strings (| und >), Anker und Referenzen (& und *), flexible Datum-/Zeittypen und unquoted Strings.
Wann sollte man YAML statt JSON verwenden?
YAML für: CI/CD-Konfigurationen, Docker Compose, Kubernetes-Manifeste, Konfigurationsdateien die Menschen bearbeiten, mehrzeiligen Text. JSON für: API-Datenaustausch (schneller), strenge Typanforderungen, maschinengenerierte Daten.
Was sind YAMLs Einzugsregeln?
YAML verwendet Leerzeichen (nie Tabs) zum Einrücken. Alle Schlüssel auf derselben Ebene müssen identischen Einzug haben. Standard ist 2 oder 4 Leerzeichen. YAML ist sehr empfindlich gegenüber Einzugsfehlern.
Wie schreibt man mehrzeilige Strings in YAML?
Zwei Blockstile: Literalblock (|) behält Zeilenumbrüche bei. Folded Block (>) ersetzt einzelne Zeilenumbrüche durch Leerzeichen. Flow-Stile: einfache Anführungszeichen (keine Escape-Verarbeitung), doppelte Anführungszeichen (mit Escape).
Wie parst man YAML in Node.js?
Verwenden Sie die js-yaml-Bibliothek (npm install js-yaml): const yaml = require('js-yaml'); const obj = yaml.load(yamlString); const str = yaml.dump(obj);. Aus Sicherheitsgründen yaml.safeLoad verwenden.
Was sind häufige Kompatibilitätsprobleme bei der Konvertierung?
1) YAML-Kommentare (#) gehen bei JSON-Konvertierung verloren. 2) Anker (&) und Aliase (*) werden zu vollständigen Objekten expandiert. 3) Datumsangaben werden als Date-Objekte geparst. 4) Ganzzahlen werden zu Zahlen; sehr große Ganzzahlen können Präzision verlieren.