JSON naar YAML en YAML naar JSON omzetten in je browser
JSON en YAML beschrijven hetzelfde soort data — geneste maps, lijsten, tekenreeksen, getallen en booleans — maar ze zien er heel anders uit en worden op verschillende plaatsen gebruikt. Als je ook maar enige tijd doorbrengt bij API's, containerbestanden of CI-pipelines, moet je vroeg of laat het ene naar het andere omzetten. Deze pagina doet die conversie beide kanten op, volledig in je browser, zodat de data die je plakt je machine nooit verlaat.

Wat JSON is en waar het gebruikt wordt
JSON (JavaScript Object Notation) is een strikt, haakjes-en-accolades-formaat dat primair voor machines is gebouwd. Elk object is omgeven door {}, elke array door [], sleutels en tekenreekswaarden staan tussen dubbele aanhalingstekens en items worden gescheiden door komma's. Het is het standaard draadformaat voor REST- en GraphQL-API's, de body van de meeste webhooks, de vorm van NoSQL-documenten en wat je fetch-aanroep teruggeeft. Vrijwel elke programmeertaal parseert het standaard, wat precies de reden is waarom het de API-laag heeft gewonnen: JSON.parse in JavaScript, json in de Python-standaardbibliotheek en equivalenten overal elders. De afweging is dat JSON omslachtig is om met de hand te schrijven en geen commentaar toestaat, waardoor het een slecht formaat is voor bestanden die mensen de hele dag bewerken.
Wat YAML is en waar het gebruikt wordt
YAML (YAML Ain't Markup Language) is ontworpen voor de tegenovergestelde prioriteit: mensen eerst. Het laat de accolades en aanhalingstekens weg, gebruikt inspringing om nesting uit te drukken en laat je commentaar schrijven met #. Die leesbaarheid is de reden waarom het de lingua franca van configuratie is geworden. Docker Compose-bestanden, Kubernetes-manifesten, GitHub Actions- en GitLab CI-workflows, Ansible-playbooks en talloze app-configuratiebestanden zijn allemaal YAML. Een typisch YAML-document is merkbaar korter dan de equivalente JSON en veel gemakkelijker te verwerken in een pull request. De prijs van die elegantie is breekbaarheid, en dat is waar conversie interessant wordt.
De belangrijkste verschillen voor conversie
Drie verschillen sturen vrijwel elke conversiebeslissing. Ten eerste is witruimte significant in YAML en betekenisloos in JSON. YAML gebruikt spaties — nooit tabs — om structuur aan te geven, waardoor één verkeerd uitgelijnd spatie de betekenis van een document stilletjes kan veranderen. JSON geeft niet om inspringing. Ten tweede ondersteunt YAML commentaar en JSON niet. Elk #-commentaar in YAML verdwijnt eenvoudig bij het produceren van JSON, omdat er geen plek voor is. Ten derde heeft YAML rijkere, impliciete typering. Het leest datums, tijdstempels en null in verschillende schrijfwijzen vanzelf en raadt typen af uit niet-geciteerde waarden. JSON heeft een kleine, expliciete typeset en geen ambiguïteit. Merk ook op dat JSON technisch gezien een subset is van YAML 1.2, waardoor geldige JSON doorgaans netjes als YAML wordt geparseerd, maar het omgekeerde is niet gegarandeerd.

Conversievoetangels om op te letten
Heen en terug converteren is niet altijd verliesvrij, en het loont te weten waar dingen misgaan:
- Het Noorwegen-probleem. Onder YAML 1.1-regels wordt niet-geciteerd
NOgeparseerd als de booleanfalse, enyes,onenoffworden ook booleans. Een landcode of een schakelaar kan naartrue/falseomslaan voordat je het merkt. Citeer waarden die je als tekenreeksen bedoelt. - Getalomzetting. Een versie zoals
3.10kan zijn achterliggende nul verliezen en3.1worden, en1.0wordt een getal zelfs als je tekst wilde. Citeer versiestrings en ID's. - Ankers en aliassen verdwijnen. YAML's
&anchor- en*alias-referenties hebben geen JSON-equivalent. Een goede converter breidt ze uit tot hun volledige waarde, zodat de data correct is maar de deduplicatie verdwenen is — JSON naar YAML naar JSON zal de oorspronkelijke ankers niet opnieuw opbouwen. - Commentaar en blokscalars. Commentaar wordt verwijderd bij omzetting naar JSON. Meermeer-regelige blokscalars (
|en>) worden samengevouwen tot gewone JSON-tekenreeksen met\n-escapetekens, waardoor de visuele opmaakbedoeling verloren gaat. - Inspringing bij terugkeer naar YAML. JSON codeert geen inspringing, dus de converter kiest een consistente stijl. Controleer het voordat je het plakt in een tab-gevoelig hulpmiddel.
Waarom alleen-lokaal er toe doet
Configuratiebestanden en API-payloads zijn precies het soort dingen dat niet naar een willekeurige server geüpload moet worden: ze bevatten vaak hostnamen, tokens, interne servicenamen of klantdata. Deze converter voert de parse-en-emit-stap uit in je browser met JavaScript. Er wordt niets naar een backend gestuurd, niets gelogd en het hulpmiddel werkt offline zodra de pagina is geladen. Plak een Kubernetes-geheim of een CI-workflow met de zekerheid dat het op jouw machine blijft.
Aanverwante tools nodig? Bekijk de volledige set dataconverters, ruim rommelige invoer op met de JSON-formatter en kom hier terug wanneer je tussen de API-wereld en de configuratiewereld wilt bewegen.
Veelgestelde vragen
Wordt mijn data ergens geüpload?
Nee. De conversie vindt volledig in je browser plaats met lokale JavaScript. Je JSON of YAML wordt nooit naar een server gestuurd, zodat geheimen en configuratiebestanden privé blijven.
Waarom is mijn YAML-waarde true of false onverwacht veranderd?
YAML 1.1 behandelt niet-geciteerde woorden zoals yes, no, on en off als booleans — het Noorwegen-probleem. Omsluit elke waarde die je als tekst bedoelt tussen aanhalingstekens zodat hij als tekst de conversie overleeft.
Wat gebeurt er met mijn commentaar als ik YAML naar JSON omzet?
JSON heeft geen commentaarsyntaxis, dus alle hekje-commentaren worden verwijderd tijdens de conversie. Als je aantekeningen wilt bewaren, houd je gezaghebbende kopie dan in YAML.
Worden YAML-ankers en aliassen bewaard?
Ze worden uitgebreid tot hun volledige waarden omdat JSON geen referentiemechanisme heeft. De data blijft correct, maar de deduplicatie is niet terug te winnen wanneer je terug naar YAML omzet.
Kan ik ook JSON naar YAML omzetten en niet alleen YAML naar JSON?
Ja, het hulpmiddel werkt in beide richtingen. Plak JSON om YAML te krijgen, of plak YAML om JSON te krijgen, en de converter detecteert en produceert het andere formaat.
Waarom breekt YAML als ik tabs gebruik?
YAML vereist spaties voor inspringing en weigert tabs. Als een plakbewerking niet wordt geparseerd, vervang dan tabtekens door spaties en houd de inspringing consistent.
