YAML
YAML-converter
Converteer tussen YAML en JSON in beide richtingen.
Over YAML en JSON
YAML en JSON beschrijven dezelfde structuren — mappings, lijsten, tekst, getallen, booleans — met andere leestekens. YAML leunt op inspringing en wordt met de hand geschreven; JSON is expliciet en is wat de meeste API's en bibliotheken daadwerkelijk verwerken. De omzetting is grotendeels mechanisch, met als kanttekening dat YAML functies heeft, zoals commentaar en ankers, die JSON eenvoudigweg niet kan uitdrukken.
De typeregels van YAML zijn strikter dan ze eruitzien. Alleen true/false (en varianten zoals True of TRUE) worden als booleans geparseerd — yes, no, on en off blijven gewone strings, anders dan bij sommige oudere YAML-parsers die ze ook als booleans behandelden, een verschil dat online bekendstaat als het "Noorwegen-probleem", omdat de landcode NO stilletjes false kon worden. Een verrassing die je hier vaker tegenkomt betreft precisie: JSON-getallen zijn IEEE-754-drijvendekommagetallen met dubbele precisie, dus een 64-bit geheel getal voorbij 2^53 kan een cijfer of twee verliezen op het moment van conversie, ook al was de oorspronkelijke YAML-waarde exact.
Waar je het tegenkomt
- Een Kubernetes-manifest of docker-compose-bestand omzetten naar JSON voor een script
- Een API-antwoord plakken in een configuratiebestand dat YAML verwacht
- Controleren of een CI-pipelinedefinitie wordt gelezen zoals je verwacht
- Twee configuratieformaten vergelijken bij een migratie tussen tools
Veelgestelde vragen
Wat gebeurt er met mijn commentaar?
Dat gaat verloren. JSON kent geen commentaarsyntaxis, dus bij het omzetten van YAML naar JSON verdwijnt elke #-regel definitief. Bewaar het YAML-origineel als het commentaar belangrijk is.
Worden ankers en aliassen ondersteund?
Ja, en ze worden uitgeklapt naar de waarde waar ze naar wijzen, omdat JSON geen verwijzing kan weergeven. Aliassen die naar andere aliassen verwijzen groeien razendsnel, dus omzettingen die een enorm document zouden opleveren worden geweigerd in plaats van geprobeerd.
Worden mijn gegevens opgeslagen?
Nee. De conversie gebeurt op de server, alleen voor dat ene verzoek; daarna wordt niets gelogd of bewaard.
Waarom is mijn grote gehele getal na conversie naar JSON licht veranderd?
JSON stelt alle getallen voor als IEEE-754-drijvendekommagetallen met dubbele precisie — hetzelfde numerieke type dat JavaScript gebruikt —, dat gehele getallen alleen exact kan bevatten tot 2^53 (9.007.199.254.740.991). Een YAML-waarde zoals een 64-bit database-ID of een Discord-achtige snowflake kan dat overschrijden, en conversie naar een JSON-getal rondt die dan stilletjes af. Als exacte precisie belangrijk is, houd zulke waarden dan vóór het converteren tussen aanhalingstekens als YAML-strings, zodat ze als JSON-strings doorkomen in plaats van als getallen.