YAML naar JSON-converter
Snelle en veilige conversie van YAML naar JSON. Perfect voor configuratiebestanden en data-analyse.
Snelle en veilige conversie van YAML naar JSON. Perfect voor configuratiebestanden en data-analyse.
YAML en JSON zijn nauw verwante formaten (JSON is technisch gezien een strikte subset van YAML 1.2) en het converteren tussen deze formaten is meestal eenvoudig. YAML voegt mensvriendelijke functies toe die JSON ontbeert: opmerkingen, tekenreeksen van meerdere regels zonder te ontsnappen, anker- en aliasreferenties, flexibeler aanhalingstekens en op inspringingen gebaseerde structuur die lijkt op de natuurlijke documentindeling. Dit maakt YAML de populaire keuze voor configuratiebestanden (Kubernetes-manifesten, GitHub Actions-workflows, Docker Compose), terwijl JSON de API-payloads domineert.
Het converteren van YAML naar JSON betekent meestal het opgeven van de mensvriendelijke extra's van YAML in ruil voor een formaat dat machines gemakkelijker kunnen parseren en dat is de lingua franca van HTTP API's. Opmerkingen worden verwijderd (JSON heeft er geen). Ankerreferenties worden omgezet in hun referentwaarden. Tekenreeksen met meerdere regels worden samengevouwen tot standaard JSON-tekenreeksen met ingebedde nieuwe regels.
Deze converter parseert YAML met behulp van js-yaml, de meest gebruikte YAML-bibliotheek in JavaScript. Uitvoer wordt gegenereerd met behulp van JSON.stringify met optionele inspringing. De conversie verwerkt alle standaard YAML 1.2-syntaxis, inclusief stroomstijl, blokstijl, scalairen, reeksen, toewijzingen, ankers, aliassen en de standaard tagtypen.
De meeste API's en veel programmeeromgevingen verwachten JSON. Configuratiebestanden geschreven in YAML moeten worden geconverteerd naar JSON bij integratie met code of services die alleen JSON accepteren. Tooling voor JSON is ook overvloediger aanwezig: jq, JSON Path, JSON Schema en een breed ecosysteem van validators en transformatoren veronderstellen allemaal JSON-invoer.
JSON is ook ondubbelzinnig op manieren die YAML niet is. De flexibiliteit van YAML zorgt voor verrassingen bij het parseren: strings zoals 'no' parseren als boolean false in YAML 1.1, versiestrings worden geparseerd als floats, inspringfouten produceren stille structurele veranderingen. Bij het converteren naar JSON worden de gegevens bevroren in een minder dubbelzinnige vorm.
Plak YAML, haal JSON op.
js-yaml implementeert YAML 1.2 met optionele ondersteuning voor YAML 1.1-eigenaardigheden (het probleem 'nee' als onwaar, octale getallen zonder voorvoegsel 0o). De parser produceert een JavaScript-objectboom met behulp van native typen: getallen, strings, booleans, null, arrays en gewone objecten.
JSON.stringify serialiseert de objectboom naar JSON. Optionele inspringing levert mooi afgedrukte afdrukken op; zonder dit is het resultaat een compacte JSON met één regel. Speciale waarden (NaN, Infinity, ongedefinieerd) zijn geen geldige JSON; de converter dwingt ze om nul te maken waar aanwezig.
Randgevallen: YAML-tijdstempels worden ISO-8601-tekenreeksen in JSON. Binaire YAML-gegevens (base64-gecodeerd) worden een tekenreeks. Ankers en aliassen worden in JSON omgezet in dubbele waarden, omdat JSON geen referentiesyntaxis heeft.