YAML zu JSON

YAML ist angenehmer von Hand zu schreiben, JSON ist angenehmer programmatisch zu konsumieren, und viele moderne Tools (CI-Pipelines, Kubernetes, Ansible) akzeptieren beides. Wenn du Konfigurationen in ein Tool einfügen musst, das auf JSON besteht, API-Gateway-Definitionen, CloudFormation-Vorlagen, einige Webhook-Inhalte, erledigt dieser Konverter die Konvertierung hin und zurück. Anker, Zusammenführungen und YAML-spezifische Typen (Datumsangaben, Oktalzahlen, null, ~) werden alle in JSON-Äquivalente normalisiert.

Wie man YAML in JSON konvertiert

  1. 1

    YAML einfügen

    Jedes gültige YAML 1.1 oder 1.2 Dokument.

  2. 2

    Anker auflösen

    Anker (`&x`) und Aliase (`*x`) werden inline erweitert. Zusammenführungs-Schlüssel (`<<`) werden flach gemacht.

  3. 3

    Typen normalisieren

    Datumsangaben, Nullwerte, Booleans werden alle in JSON-Äquivalente umgewandelt.

  4. 4

    JSON ausgeben

    Schön formatiert oder minimiert, deine Wahl.

Beispielkonvertierung

YAML:

defaults: &defaults
  timeout: 30
  retries: 3

production:
  <<: *defaults
  host: prod.example.com
  debug: false

staging:
  <<: *defaults
  host: staging.example.com
  debug: true

JSON (Anker aufgelöst):

{
  "defaults": {
    "timeout": 30,
    "retries": 3
  },
  "production": {
    "timeout": 30,
    "retries": 3,
    "host": "prod.example.com",
    "debug": false
  },
  "staging": {
    "timeout": 30,
    "retries": 3,
    "host": "staging.example.com",
    "debug": true
  }
}

Typzuordnungen

YAML JSON
Zeichenkette Zeichenkette
Ganzzahl Zahl
Gleitkommazahl Zahl
Boolescher Wert (true, false) Boolescher Wert
Null (null, ~, leer) null
Zeitstempel Zeichenkette (ISO 8601)
Sequenz (Liste) Array
Zuordnung Objekt

YAML-spezifische Dinge, die JSON nicht darstellen kann

  • Kommentare. JSON hat keine standardisierte Kommentarsyntax. Kommentare werden entfernt.
  • Mehrdokumentenströme (--- Trennzeichen). JSON ist ein Dokument pro Datei; der Konverter gibt ein Array von Dokumenten aus, wenn es mehrere gibt.
  • Anker und Aliase. Inline aufgelöst und dupliziert.
  • Komplexe Schlüssel (nicht-string Mapping-Schlüssel). JSON-Schlüssel müssen Strings sein; komplexe Schlüssel werden in Strings umgewandelt.

Der 1.1 vs 1.2 Fallstrick

  • YAML 1.1 interpretiert yes, no, on, off, y, n als Booleans. NO als Ländercode wird stillschweigend zu false.
  • YAML 1.2 beschränkt Booleans auf true und false. Sicherer, aber viele Parser (einschließlich PyYAML Standard) verwenden immer noch 1.1.

Der Konverter verwendet standardmäßig die Semantik von 1.2 und warnt, wenn 1.1 das Ergebnis geändert hätte.

Hin- und Rückreise von JSON zurück zu YAML

JSON zu YAML ist normalerweise verlustfrei (JSON ist eine Teilmenge der YAML 1.2 Syntax). YAML zu JSON ist verlustbehaftet: Kommentare und die Struktur von Zusammenführungs-Schlüsseln verschwinden. Wenn du eine Hin- und Rückreise planst, bewahre das ursprüngliche YAML in der Versionskontrolle auf.

Häufig gestellte Fragen

Nein, diese haben ihre eigene Vorlagenverarbeitung, die vor dem YAML-Parsing läuft. Render die Vorlage zuerst (mit kustomize build oder helm template), und gib dann die Ausgabe hier ein.

YAML-Zeitstempel werden in JSON zu ISO 8601-Strings. 2026-04-18 wird zu "2026-04-18". Zeiten und Zeitzonen werden beibehalten.

Die praktische Grenze im Browser liegt bei etwa 10 MB. Für größere Dateien verwende yq oder python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))" in der Kommandozeile.

Nein. Die Konvertierung erfolgt in deinem Browser und es wird nichts übertragen.

Verwandte Tools

Tool in anderen Sprachen verfügbar