JSON naar YAML omzetten
Zet JSON om naar YAML en YAML naar JSON in je browser, met ondersteuning voor anchors, merge keys en bestanden met meerdere documenten. Er wordt niets geüpload.
Zo gebruik je de JSON-naar-YAML-converter
- Kies de richting: JSON → YAML of YAML → JSON.
- Plak je gegevens, of klik op Bestand openen om een
.json-,.yaml- of.yml-bestand te laden (maximaal 10 MB). - Kies de Inspringing (2 of 4 spaties) en eventueel Sleutels sorteren op alfabet.
- Klik op Omzetten, of typ gewoon verder: het resultaat wordt automatisch bijgewerkt. Is de invoer ongeldig, dan geeft de foutmelding de regel en kolom van het probleem.
- Kopieer of download het resultaat. Richting omdraaien stuurt het resultaat terug naar de invoer om het de andere kant op om te zetten.
JSON en YAML: dezelfde gegevens, andere syntaxis
YAML is in de praktijk een superset van JSON: elk JSON-document beschrijft gegevens die YAML kan uitdrukken, en YAML voegt een lichtere syntaxis toe die voor mensen makkelijker te lezen en te bewerken is. Daarom worden Kubernetes-manifesten, Docker Compose-bestanden, GitHub Actions- en GitLab CI-pipelines, Ansible-playbooks en OpenAPI-specificaties meestal in YAML geschreven, terwijl API’s en programma’s JSON uitwisselen.
Dezelfde gegevens in beide formaten:
{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
- 80
- 443
env:
DEBUG: false
JSON → YAML
De converter schrijft YAML in blokstijl: één sleutel per regel, lijsten met streepjes en geneste objecten ingesprongen. Lange strings worden nooit gevouwen, en strings over meerdere regels gebruiken de letterlijke stijl |, zodat regeleinden exact behouden blijven. Strings die YAML anders als een ander type zou lezen, krijgen aanhalingstekens: "yes", "1.0" of "null" blijven na heen en terug strings. Sleutels sorteren zet de sleutels van elk object op alfabetische volgorde, wat het vergelijken van twee configuratiebestanden makkelijker maakt.
YAML → JSON
De YAML wordt gelezen met het core-schema van YAML 1.2, dezelfde regels die de meeste moderne tools gebruiken:
true/false, getallen ennull(of~) worden JSON-waarden;yes,no,onenoffblijven strings, zoals de YAML 1.2-specificatie voorschrijft.- Anchors en aliassen (
&base,*base) worden uitgeschreven, en merge keys (<<: *base), gebruikelijk in CI-bestanden, worden ondersteund. - Een bestand met meerdere documenten, gescheiden door
---, wordt een JSON-array met één element per document, en een melding vertelt hoeveel er zijn samengevoegd. - Commentaar valt weg, omdat JSON geen commentaar kent.
.infen.nanhebben geen JSON-equivalent; ze worden geschreven als de strings"Infinity"en"NaN".
Om je browser te beschermen tegen “billion laughs”-bestanden, waarin een paar aliassen uitgroeien tot miljarden waarden, wordt een document dat uitgroeit tot meer dan een miljoen waarden geweigerd.
Veelgemaakte fouten in YAML
- Tabs om in te springen: YAML staat alleen spaties toe.
- Ongelijke inspringing: items van dezelfde lijst of hetzelfde object moeten in dezelfde kolom beginnen.
- Geen spatie na de dubbele punt:
key:valueis één string, terwijlkey: valueeen sleutel-waardepaar is. - Speciale tekens zonder aanhalingstekens: een waarde die begint met
@, een backtick,*,&of!, of die:of#bevat, moet tussen aanhalingstekens.
Veelgestelde vragen
Wordt mijn bestand naar een server gestuurd?
Nee. De omzetting draait in je browser, en je configuratiebestanden, geheimen of API-gegevens verlaten je computer nooit.
Waarom worden “yes” en “no” niet omgezet naar booleans?
Sinds YAML 1.2 zijn alleen true en false booleans. Oudere YAML 1.1-parsers behandelden yes, no, on en off als booleans, wat het beroemde “Noorwegen-probleem” veroorzaakte (de landcode NO gelezen als false). Deze tool volgt YAML 1.2.
Blijft commentaar in YAML behouden?
Nee. JSON kent geen commentaar, dus het gaat verloren bij YAML → JSON. Bij JSON → YAML kun je achteraf commentaar aan het resultaat toevoegen.
Kan ik een Kubernetes-bestand met meerdere resources omzetten?
Ja. Elke resource die door --- wordt gescheiden, wordt één element van een JSON-array. Zet je die array terug naar YAML, dan krijg je één document met een lijst.
Verandert de converter de volgorde van sleutels?
Niet tenzij je Sleutels sorteren aanvinkt: sleutels houden de volgorde waarin ze in je invoer staan. De enige uitzondering komt van JavaScript zelf: sleutels die gehele getallen zijn, zoals "10" of "2", komen vooraan te staan, in oplopende volgorde.
Vergelijkbare tools
- JSON formatteren en valideren Gratis JSON-formatter en -validator die JSON in je browser leesbaar maakt, minifyt en controleert, met syntaxfouten gemeld per regel en kolom.
- JSON naar CSV omzetten Zet JSON om naar CSV en CSV terug naar JSON in je browser. Geneste sleutels worden kolommen, scheidingstekens worden herkend en er wordt niets geüpload.
- JSON naar XML omzetten Zet JSON om naar XML en XML naar JSON in je browser, met attributen, herhaalde elementen en CDATA. Er wordt niets naar een server geüpload.