YAML naar JSON

YAML is handiger om handmatig te schrijven, JSON daarentegen beter om op programmeerbare wijze te gebruiken; veel moderne tools (CI-pipelines, Kubernetes, Ansible) ondersteunen beide formaten. Wanneer u configuratie moet invoeren in een tool die vereist JSON, zoals API Gateway-definities, CloudFormation-sjablonen of bepaalde webhook-body’s, verzorgt deze converter de omzetting heen en weer. Ankers, samenvoegingen en YAML-specifieke typen (datums, octalen waarden, null, ~) worden allemaal genormaliseerd naar hun JSON-equivalenten.

Hoe omzet je YAML naar JSON

  1. 1

    YAML-plakken

    Elk geldig YAML-document van versie 1.1 of 1.2.

  2. 2

    Bevestigingen oplossen

    Ankers (`&x`) en aliasnamen (`*x`) worden in de tekstweergave uitgebreid; samenvoegings sleutels (`<<`) worden vervolgens platgevouwen.

  3. 3

    Normalisatie-typeën

    Data-datumen, null-waarden en booleaanse waarden worden allemaal omgezet naar hun JSON-equivalenten.

  4. 4

    Uitvoer van de tekst

    Of je het precies zoals afgedrukt wilt zien of in een vergrote versie: kies zelf.

Voorbeeldconversie

YAML:

defaults: &defaults
  timeout: 30
  retries: 3

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

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

JSON (ankers opgelost):

{
  "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
  }
}

Typenmappingen

YAML JSON
Tekenreeks Tekenreeks
Geheel getal Getal
Drijvendekommagetal Getal
Booleaans (true, false) Booleaans
Null (null, ~, leeg) null
Tijdstempel ISO 8601-tekenreeks
Reeks (lijst) Array
Toewijzing Object

Dingen die specifiek zijn voor YAML kunnen niet worden weergegeven in JSON

  • Commentaren: JSON heeft geen standaard syntaxis voor commentaren; deze worden niet ondersteund.
  • Multi-documentstromen (scheiders ---). In JSON bestaat elke bestand uit één document; wanneer er meerdere documenten zijn, genereert de converter een array met deze documenten.
  • Ankers en alias: opgelost en gedupliceerd in de regel.
  • Complexe sleutels (sleutels die geen string zijn). JSON-sleutels moeten strings zijn; complexe sleutels worden omgezet naar strings.

De valkuil tussen versie 1.1 en 1.2

  • YAML 1.1 interpreteert yes, no, on, off, y en n als booleaanwaarden; NO wordt automatisch omgezet naar false als landcode.
  • YAML 1.2 beperkt booleaanwaarden tot true en false. Hoewel veiliger, gebruiken veel parsers (waaronder de standaardversie van PyYAML) nog steeds versie 1.1.

De converter gebruikt standaard de semantiek van versie 1.2 en waarschuwt wanneer versie 1.1 het resultaat had kunnen veranderen.

Heen en terug van JSON naar YAML

De omzetting van JSON naar YAML is meestal verliesvrij (JSON is een onderdeel van de syntaxis van YAML 1.2). De omzetting van YAML naar JSON is verliesgevend: commentaren en de merge-key-structuur worden verwijderd. Als u de omzetting heen en weer wilt uitvoeren, moet u het originele YAML-bestand bewaren in het versiebeheersysteem.

Veelgestelde vragen

Nee, die hebben hun eigen sjabloon die wordt uitgevoerd voordat de YAML wordt geparseerd. Weergeef eerst het sjabloon (met kustomize build of helm template) en voer daarna de uitvoer hier in.

YAML-tijdstempels worden in JSON omgezet tot ISO 8601-stringen; bijvoorbeeld 2026-04-18 wordt "2026-04-18". Tijden en tijdzones worden behouden.

De praktische limiet in de browser bedraagt ongeveer 10 MB. Voor grotere bestanden kunt u yq of python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))" gebruiken in de opdrachtregel.

Nee, de conversie wordt uitgevoerd in uw browser en er wordt niets overgedragen.

Gerelateerde tools

Tool beschikbaar in andere talen