JSON naar YAML converter

Zet JSON om in nette, goed leesbare YAML voor Kubernetes, Docker Compose, GitHub Actions of Ansible, met volledige controle over inspringing, stijl en aanhalingstekens.

Draait in je browserGeen account nodigNiets wordt geüpload

JSON-uitvoer

Zo gebruik je de JSON naar YAML

  1. Plak JSON in het linkerveld of open een .json-bestand.
  2. De YAML verschijnt rechts terwijl je typt.
  3. Kies de inspringing (2 of 4 spaties) en de stijl: block (één key per regel) of flow ({a: 1}/[x, y]) vanaf een bepaald nestingniveau.
  4. Kies een stijl voor aanhalingstekens en vink Keys sorteren aan als je een alfabetische volgorde wilt.
  5. Kopieer of download de YAML. Ongeldige JSON wordt gemeld met regel, kolom en waarschijnlijke oorzaak.

Waarom JSON naar YAML omzetten?

JSON is ideaal voor machines en API's, maar YAML is voor mensen makkelijker te lezen en te bewerken: geen accolades, geen verplichte aanhalingstekens en ondersteuning voor commentaar. De meeste infrastructuurtools, waaronder Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI en Ansible, worden in YAML geconfigureerd, terwijl de data waarmee je begint (API-output, kubectl get -o json, Terraform-state) vaak JSON is.

Block- vs. flow-stijl

Block-stijl zet elke key en elk lijstitem op een eigen regel en is de gebruikelijke keuze voor configuratiebestanden. Flow-stijl gebruikt inline {} en [], zoals JSON, en houdt korte structuren onderaan de boom compact. „Flow vanaf niveau 2” houdt de bovenste twee niveaus in block-stijl en zet alles wat dieper ligt inline, wat goed werkt voor lange lijsten met kleine objecten zoals poorten of env vars.

Veilig quoten

Strings die een YAML-parser verkeerd zou kunnen lezen, worden automatisch tussen aanhalingstekens gezet: waarden als 'no', 'on', '1.0', 'null', strings die beginnen met * of &, en strings met : erin. Kies Altijd enkel of Altijd dubbel als je stijlgids vereist dat elke string gequote wordt.

Valkuilen van YAML 1.1 vs 1.2

Deze converter volgt YAML 1.2, de huidige specificatie. Veel oudere tools (PyYAML, Psych van Ruby, sommige versies van Kubernetes en Ansible) lezen nog YAML 1.1, waar de regels anders zijn:

  • Het Noorwegen-probleem: in YAML 1.1 betekent country: no false, waardoor de landcode van Noorwegen, NO, verdwijnt. Hetzelfde geldt voor yes, on, off, y en n. YAML 1.2 ziet alleen true en false als booleans.
  • Octale getallen: 0755 is octaal in 1.1, maar een gewoon decimaal getal in 1.2, dat 0o755 gebruikt. Zet bestandsrechten voor de zekerheid tussen aanhalingstekens.
  • Sexagesimale getallen: in 1.1 kan 22:30 worden geparsed als het getal 1350. Zet tijden en poorttoewijzingen zoals "8080:80" tussen aanhalingstekens.

De richting JSON → YAML zet dubbelzinnige strings ('no', 'on', 'y') automatisch tussen aanhalingstekens, zodat de gegenereerde YAML in beide versies hetzelfde wordt gelezen.

Veelgestelde vragen

Is de conversie verliesvrij?
Ja. Elk JSON-document is geldige YAML 1.2, en de gegenereerde YAML wordt weer geparsed tot precies dezelfde data. Je kunt het controleren door op Omwisselen te drukken.
Waarom staan sommige strings tussen aanhalingstekens en andere niet?
Met Alleen indien nodig worden aanhalingstekens alleen toegevoegd waar een waarde zonder quotes een andere betekenis zou krijgen, bijvoorbeeld 'yes', '123' of strings met speciale tekens. Al het andere blijft zonder quotes, voor de leesbaarheid.
Kan ik commentaar toevoegen aan de uitvoer?
JSON heeft geen commentaar, dus er valt niets om te zetten, maar je kunt na het kopiëren # comments aan de YAML toevoegen.
Verandert de volgorde van keys?
Nee. Keys behouden hun JSON-volgorde, tenzij je Keys sorteren aanvinkt.
Blijft mijn data privé?
Ja. De converter draait in je browser en doet geen netwerkrequests met je invoer.

Gerelateerde tools