YAML naar JSON converter
Plak YAML (Kubernetes-manifests, Docker Compose, CI-configuraties) en krijg direct nette JSON. Fouten tonen de exacte regel met een aanwijzer.
Draait in je browserGeen account nodigNiets wordt geüpload
Zo gebruik je de YAML naar JSON
- Plak YAML in het linkerveld of open een
.yaml/.yml-bestand. - De JSON verschijnt rechts terwijl je typt. Kies 2 spaties, 4 spaties of tabs voor de uitvoer.
- Vink Keys sorteren aan om keys alfabetisch te ordenen. Dat helpt bij het vergelijken van configuraties.
- Is de YAML ongeldig, dan toont de statusbalk de regel en kolom, en verschijnen de foute regels eronder met een
^-markering. - Kopieer of download de JSON, of druk op Omwisselen om hem weer naar YAML om te zetten.
Hoe YAML naar JSON wordt vertaald
JSON is een subset van YAML 1.2, dus elke YAML-mapping wordt een JSON-object, elke sequence een array, en scalars worden strings, getallen, booleans of null. Features die alleen YAML heeft, worden tijdens de conversie opgelost:
- Commentaar (
# …) verdwijnt, omdat JSON geen commentaar kent. - Anchors en aliassen (
&base,*base,<<: *base) worden uitgeschreven tot volledige kopieën. - Timestamps zoals
2024-01-02worden ISO 8601-strings. - Strings over meerdere regels (
|-literal- en>-folded-blokken) worden gewone strings met\n-escapes.
YAML met meerdere documenten
Eén bestand kan meerdere YAML-documenten bevatten, gescheiden door ---, zoals gebruikelijk bij Kubernetes-manifests. JSON heeft daar geen equivalent voor, dus de converter geeft een JSON-array met één element per document terug en meldt dat in de statusbalk. Een losse --- aan het eind wordt genegeerd.
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: nofalse, waardoor de landcode van Noorwegen,NO, verdwijnt. Hetzelfde geldt vooryes,on,off,yenn. YAML 1.2 ziet alleentrueenfalseals booleans. - Octale getallen:
0755is octaal in 1.1, maar een gewoon decimaal getal in 1.2, dat0o755gebruikt. Zet bestandsrechten voor de zekerheid tussen aanhalingstekens. - Sexagesimale getallen: in 1.1 kan
22:30worden 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
Wordt mijn YAML ergens geüpload?
Waarom faalt mijn YAML met „bad indentation”?
-) consequent inspringen onder hun bovenliggende key.Wat gebeurt er met YAML-commentaar?
Waarom bleef <code>no</code> een string?
true/false booleans zijn. Oudere YAML 1.1-parsers zouden no, yes, on en off omzetten naar booleans (het „Noorwegen-probleem”).Kan ik een Kubernetes-manifest met meerdere resources omzetten?
--- wordt één element van de JSON-array in de uitvoer, klaar voor jq of kubectl apply -f -, dat ook JSON-lijsten accepteert.