JSON naar YAML
Gratis online JSON naar YAML converter: zet JSON in één klik om naar standaard YAML 1.2, met aanpasbare inspringing, slimme JSON-foutherstel, en geschikt voor Kubernetes manifests, Docker Compose, GitHub Actions en andere YAML-configuraties.
Gerelateerde aanbevelingen
Wat is YAML? En waarom JSON naar YAML omzetten?
YAML (YAML Ain't Markup Language, oftewel YAML is geen opmaaktaal) is een mensvriendelijk gegevensserialisatieformaat dat is ontworpen om configuratiebestanden leesbaar en schrijfbaar te maken. YAML 1.2 is de huidige stabiele versie (yaml.org/spec/1.2.2). Het werd in 2001 voorgesteld door Clark Evans en wordt nu gebruikt door vrijwel alle gangbare DevOps-tools, zoals Kubernetes, Docker Compose, GitHub Actions, Ansible, CircleCI en Prometheus. YAML geeft leesbaarheid prioriteit boven compactheid: in ruil voor de machinevriendelijke, compacte syntaxis van JSON krijg je een op inspringing gebaseerde structuur met commentaar.
JSON en YAML zijn supergemenen (JSON is een subset van YAML), dus JSON naar YAML omzetten is technisch gezien slechts een herformattering, maar de praktische voordelen zijn groot: ① Betere leesbaarheid: YAML gebruikt inspringing in plaats van accolades en komma's, en de aanhalingstekens rond sleutels kunnen vervallen, wat de leesbaarheid enorm verbetert. ② Commentaarondersteuning: YAML ondersteunt # commentaar; de JSON-standaard niet (hoewel veel tools via #!shebang of flexibel parseren toch commentaar toelaten). ③ Multi-document ondersteuning: YAML ondersteunt meerdere documenten in één bestand met behulp van de --- scheidingsteken — handig voor Kubernetes, waar één yaml-bestand Deployment + Service + ConfigMap kan bevatten. ④ Automatische typeherkenning: YAML herkent getallen, booleans en null zonder aanhalingstekens, wat configuratiebestanden schoner maakt.
YAML kent drie basisgegevensstructuren: ① Scalars — tekenreeksen, getallen, booleans, null, enzovoort. ② Sequences — vergelijkbaar met JSON-arrays, weergegeven met `-`. ③ Mappings — vergelijkbaar met JSON-objecten, weergegeven met `key: value`. Daarnaast zijn er geavanceerdere constructies: anchors (&anchor) en references (*anchor) hergebruiken configuratieblokken; blokstijl (| behoudt regelovergangen) en vouwstijl (> zet regelovergangen om in spaties) bepalen multiline-tekenreeksen; expliciete tags (!!str, !!int) dwingen een type af. Hierdoor is YAML krachtiger dan JSON in complexe configuratiescenario's.
Veelvoorkomende redenen om JSON naar YAML om te zetten: ① Het project moet op Kubernetes draaien terwijl de bestaande configuratie JSON is. ② Het team wil alle configuratiebestanden in YAML beheren. ③ Een derde partij vereist YAML-indeling voor verzoeken (OpenAPI, Swagger). ④ API-gateways of CI/CD-platformen exporteren JSON die in leesbare YAML nodig is. ⑤ Mockdata van JSON naar YAML omzetten voor testfixtures. Deze tool dekt al deze scenario's.
Het conversieproces is in essentie een herstructurering van gegevens: JSON.parse() zet de tekst om in een JavaScript-object (AST), waarna de dump()-functie van js-yaml recursief elke node doorloopt — tekenreeksen, getallen, booleans en null worden direct uitgevoerd, arrays worden `-`-lijsten en geneste objecten worden inspringingsniveaus. Het hele proces verloopt volledig lokaal, zonder externe afhankelijkheden (afgezien van de js-yaml-bibliotheek zelf), en het resultaat is 100% compatibel met alle standaard YAML-parsers.
Toepassingsgevallen
- Kubernetes-manifesten voorbereiden: zet JSON-configuraties uit Helm-sjablonen of CI/CD-tools om naar standaard Deployment/Service YAML
- Docker Compose-configuratie: zet JSON uit docker-compose.json-tools of containerplatformen om naar leesbare docker-compose.yml
- GitHub Actions / GitLab CI-workflows: zet automatiseringsscripts of sjabloonuitvoer om naar YAML-pijplijnen
- Ansible Playbooks schrijven: zet taakplannings-JSON om naar de YAML-structuur die Ansible verwacht, zodat code-review eenvoudiger wordt
- Microservice-configuratie stroomlijnen: migreer verspreide JSON-configuraties naar een centraal YAML-repository voor versiebeheer en audits
- Swagger/OpenAPI naar YAML: zet door API-tools geëxporteerde JSON Schema om naar de YAML-versie van de OpenAPI-specificatie
- YAML-syntaxis leren: bekijk een bestaande JSON-structuur om intuïtief te zien hoe YAML geneste objecten, arrays en speciale waarden voorstelt
- Configuratiebestanden vergelijken en converteren: schakel snel tussen JSON en YAML om formaten te vergelijken en de beste keuze voor je project te bepalen
Hoe te gebruiken
- Plak de JSON-inhoud in de editor aan de linkerkant, of klik op de uploadknop om een .json- of .txt-bestand te kiezen; je kunt ook op 'Voorbeeld' klikken om een demo te laden
- De tool converteert automatisch in realtime volgens de YAML 1.2-specificatie en toont het resultaat direct aan de rechterkant; via het dropdown-menu wissel je tussen 2 en 4 spaties
- Bevat de JSON syntaxfouten (zoals trailing komma's, enkele aanhalingstekens of opmerkingen), dan verschijnt onderaan de knop 'JSON repareren' waarmee je in één klik corrigeert
- Voor Unicode-escapes of string-escapes gebruik je de knoppen 'Chinees ↔ Unicode' en 'Escape/Unescape' in de werkbalk onderaan
- Bevalt het resultaat? Klik op 'Kopiëren' om de YAML te kopiëren of op 'Downloaden' om het op te slaan als output.yaml voor je project
Functies
- Standaard YAML 1.2 output: voldoet aan de officiële YAML 1.2-specificatie en werkt direct met Kubernetes, Docker Compose, GitHub Actions, Ansible en andere gangbare tools
- Aanpasbare inspringing: schakel tussen 2 en 4 spaties om bij de codestijl van je project aan te sluiten (YAML beveelt 2 spaties aan)
- Slimme JSON-fix: ingebouwde tryFixJSON-engine herkent en herstelt automatisch veelvoorkomende JSON-fouten zoals trailing komma's, enkele aanhalingstekens en opmerkingen vóór de conversie
- Unicode-conversie in twee richtingen: zet Chinese teksten om naar \uXXXX Unicode-escape-reeksen of zet Unicode terug naar leesbare tekst, handig voor internationalisatie
- String escape/unescape: voeg in één klik escapes toe voor dubbele aanhalingstekens, backslashes en nieuwe regels in JSON-strings, of zet ontsnapte strings terug naar hun originele vorm
- JSON opmaken en minify: het linker invoerpaneel kan JSON verfraaien met inspringing of terugbrengen tot een minimale éénregelige versie
- Realtime tweerichtingsbewerking: plak JSON aan de linkerkant en zie direct aan de rechterkant het YAML-resultaat, conversie terwijl je typt
- Bestand uploaden en downloaden: ondersteuning voor .json/.txt-upload en download het resultaat als config.yaml of output.yaml
- Sneltoetsen op het toetsenbord: Shift+Cmd/Ctrl+F voor formatteren, C voor minify, U voor Unicode-conversie, Z voor undo, / voor escape, . voor unescape, O voor upload, D voor download, K voor wissen
- Verplaatsbare panelen en geschiedenis: op pc kunnen de linker- en rechterpanelen gesleept worden om de breedte aan te passen, en de laatste 200 bewerkingen worden automatisch bewaard
- Direct naar JSON-formatter: spring na de conversie in één klik door naar de JSON-formatter om de brongegevens verder te verfraaien, valideren of te minifyen
- Puur lokale verwerking in de browser: alle parsing, conversie en escape-bewerkingen draaien in JavaScript in je browser; gevoelige configuraties worden niet geüpload
Veelgestelde vragen
Hoe zet ik JSON om naar YAML?
Plak de JSON-inhoud in de editor aan de linkerkant en de tool zet deze automatisch om naar leesbare YAML volgens de YAML 1.2-specificatie: sleutel-waardeparen worden key: value, geneste objecten worden door inspringing weergegeven en arrays worden `- item`-lijsten. Eenmaal klaar kun je in één klik kopiëren of downloaden als .yaml-bestand. Bevat de JSON syntaxfouten (zoals trailing komma's, enkele aanhalingstekens of opmerkingen), dan probeert de tool deze automatisch te repareren vóór de conversie.
Waarvoor zijn YAML en JSON het meest geschikt?
YAML is ideaal voor door mensen leesbare configuratie: Kubernetes-manifesten, Docker Compose, GitHub Actions, Ansible Playbooks en CI/CD-pijplijnen. JSON is beter voor machinale verwerking en gegevensuitwisseling: REST API-verkeer, communicatie tussen microservices en dataoverdracht tussen frontend en backend. Vuistregel: kies YAML voor configuratie, JSON voor data. Deze site ondersteunt ook de omgekeerde richting, YAML naar JSON.
Moet ik 2 of 4 spaties gebruiken voor YAML?
YAML beveelt 2 spaties aan (consistent met Python-stijl) en dit is de standaard voor Kubernetes, Docker Compose en GitHub Actions. Sommige projecten (zoals oudere Ansible-codebases of Google's interne stijl) gebruiken echter 4 spaties. Deze tool ondersteunt beide: met het dropdown-menu rechtsboven in het uitvoerpaneel wissel je direct van inspringing, zonder opnieuw te converteren.
Kan de gegenereerde YAML direct in Kubernetes gebruikt worden?
Ja. Deze tool volgt strikt de officiële YAML 1.2-specificatie, dus de output is compatibel met de Kubernetes YAML-parser (kubectl apply). Sla de gegenereerde YAML op als deployment.yaml, service.yaml enzovoort en pas toe met `kubectl apply -f`. Let op: YAML is gevoelig voor inspringing; kopieer zonder extra spaties en gebruik geen tabs.
Ondersteunt de tool multi-document YAML (gescheiden door ---)?
De huidige versie richt zich op JSON-naar-YAML-conversie van één document. Als je JSON een array van onafhankelijke objecten bevat, wordt deze als lijst weergegeven. Voor echte multi-document YAML (met --- vóór elk object) moet je na de conversie handmatig de --- scheidingsmarkeringen toevoegen, of de YAML-formatter op deze site gebruiken om de output verder te bewerken.
Vertroebelen Chinese tekens of speciale tekens in de YAML?
Nee. Deze tool ondersteunt UTF-8 volledig, inclusief Chinees, Japans, Koreaans, emoji en alle speciale Unicode-tekens. Als je de Chinese tekens wilt omzetten naar \uXXXX-escapes (bijvoorbeeld om ze in JavaScript-stringliteralen in te sluiten), gebruik dan de knop 'Chinees → Unicode' onder in de tool. De knop 'Unicode → Chinees' zet ze weer terug.
Hoe worden dubbele aanhalingstekens en nieuwe regels in JSON-strings behandeld?
YAML ondersteunt meerdere tekenreeksstijlen: ① zonder aanhalingstekens (voor eenvoudige tekenreeksen zonder speciale tekens); ② dubbele aanhalingstekens (met ondersteuning voor escapes zoals \n en \t); ③ enkele aanhalingstekens (letterlijke, niet-ontsnappende tekenreeksen); ④ blokstijl | (met behoud van regelovergangen); ⑤ vouwstijl > (regelovergangen worden spaties). De tool gebruikt standaard dubbele aanhalingstekens; nieuwe regels in JSON-strings worden automatisch ontsnapt als \n. De knop 'Escape/Unescape' onder in de tool is beschikbaar voor speciale gevallen.
Worden alle waarden in YAML na conversie tot tekenreeksen?
Standaard herkent de tool het oorspronkelijke type van JSON en behoudt dit: getallen blijven YAML-getallen (zonder aanhalingstekens), booleans worden true/false en null wordt null of ~. Als je toch wilt dat álle waarden tekenreeksen zijn (bijvoorbeeld omdat een configuratiesysteem dat eist), kun je ze na de conversie handmatig tussen aanhalingstekens plaatsen, of aan de JSON-kant alle waarden als tekenreeks inpakken vóór de conversie.
Worden mijn configuratiebestanden geüpload bij lokale conversie?
Nee. Alle JSON-parsing, YAML-generatie, string-escapes, Unicode-conversie en JSON-fix worden volledig in de JavaScript-engine van je browser uitgevoerd, zonder verzending naar een server. De tool werkt zelfs offline. JSON met databasewachtwoorden, API-sleutels of Kubernetes Secrets kun je dus met een gerust hart converteren.
Probleemoplossing
JSON-fout 'Unexpected token', wat nu?
Dit is een JSON-syntaxfout. Veelvoorkomende oorzaken: ① overbodige trailing komma's, zoals `{"a":1,}`; ② enkele aanhalingstekens in plaats van dubbele, zoals `{'a':1}`; ③ sleutels zonder aanhalingstekens, zoals `{a:1}`; ④ opmerkingen met `//` of `/* */`. Onderaan de tool vind je de knop 'JSON repareren' die automatisch trailing komma's aanvult, ontbrekende aanhalingstekens toevoegt en opmerkingen verwijdert. Converteer opnieuw na de reparatie.
kubectl apply geeft 'yaml: invalid character'?
Meestal een inspringingsfout. YAML vereist strikt spaties; een mix met tabs zorgt voor parseerfouten. Controleer: ① of alle inspringing spaties zijn (geen tabs); ② of de inspringing binnen één niveau consistent is (2 of 4 spaties); ③ of de niveaus correct op elkaar aansluiten. De output van deze tool gebruikt uitsluitend spaties, maar als je tijdens kopiëren of plakken tabs invoegt, ontstaat het probleem.
Regelovergangen in YAML verschijnen als \n, hoe los ik dit op?
Standaard worden nieuwe regels in JSON-strings tijdens de YAML-conversie ontsnapt als \n. Wil je echte regelovergangen behouden (zoals bij Docker Compose multi-line commands), vervang dit dan handmatig door de YAML-blokstijl met `|`, bijvoorbeeld: `description: |\n eerste regel\n tweede regel`. Je kunt ook de knop 'Unescape' van deze tool gebruiken om \n eerst naar echte regelovergangen te converteren voordat je converteert.
null-waarden verschijnen als ~ in de YAML-output
YAML gebruikt `~` of `null` om een lege waarde aan te duiden; beide zijn equivalent. Als je tool het teken `~` niet herkent, vervang het dan handmatig door `null`. In YAML 1.1 werden NO/On/Off als booleaanse false geïnterpreteerd (het Norway-probleem); YAML 1.2 verhelpt dit en de output van deze tool voldoet aan 1.2.
Chinese tekens verschijnen als \uXXXX-escapes in YAML
Standaard geeft de tool Chinese teksten ongewijzigd in UTF-8 weer. Als je toch \uXXXX-escapes ziet, komt dat omdat: ① de invoer-JSON die escapes al bevatte; ② je op de knop 'Chinees → Unicode' hebt geklikt. Gebruik de knop 'Unicode → Chinees' om ze terug te zetten, of vervang \uXXXX aan de JSON-kant door de oorspronkelijke Chinese tekens.
Browser hapert bij het converteren van grote bestanden
De tool is geoptimaliseerd voor realtime conversie (500 ms debounce), maar bij extreem grote bestanden (>1 MB of honderdduizenden regels) kan de browser onder druk komen te staan. Tips: ① controleer met de JSON-formatter of de invoer geldig is; ② bevestig dat het één grote JSON is en geen aaneengeregen JSON-fragmenten; ③ gebruik voor zeer grote configuraties (10 MB+) commandlinetools zoals yq of kubectl convert; ④ sluit bij bevriezing overige tabbladen om geheugen vrij te maken en probeer opnieuw.
Woordenlijst
- YAML
- YAML Ain't Markup Language (recursief acroniem), een voor mensen leesbaar gegevensserialisatieformaat en de de facto standaard voor configuratie in DevOps-tools zoals Kubernetes, Docker Compose en Ansible.
- Inspringing (Indentation)
- YAML geeft hiërarchie aan met inspringing (verplicht spaties, geen tabs). Verkeerde inspringing zorgt voor parseerfouten of onbedoelde structuur — de bekendste valkuil van YAML.
- Sequence
- De YAML-notatie voor een array, weergegeven als `- item`. Komt overeen met de JSON-array.
- Mapping
- De YAML-notatie voor een object, weergegeven als `key: value`. Komt overeen met het JSON-object.
- Blokstijl (Block Scalar |)
- YAML-notatie voor multiline-tekenreeksen, gemarkeerd met `|`. Alle regelovergangen en inspringing blijven behouden, vergelijkbaar met heredoc.
- Vouwstijl (Folded Scalar >)
- YAML-notatie voor multiline-tekenreeksen, gemarkeerd met `>`. Eén regelovergang wordt vervangen door een spatie; twee opeenvolgende regelovergangen blijven als alinea-einde.
- Anchors en references (Anchor & Reference)
- YAML definieert anchors met `&naam` en verwijst ernaar met `*naam`, zodat configuratieblokken herbruikt kunnen worden. Veelgebruikt in K8s waar dezelfde Secret op meerdere plekken voorkomt.
- YAML 1.2
- De huidige stabiele YAML-versie (gepubliceerd in 2009, kleine herziening in 2021). Deze tool volgt strikt deze versie (yaml.org/spec/1.2.2).
- Multi-document YAML
- YAML ondersteunt meerdere documenten in één bestand, gescheiden door `---`. In Kubernetes kan één yaml-bestand zo meerdere resources bevatten, zoals Deployment + Service + ConfigMap.
- Kubernetes YAML
- Het YAML-formaat voor Kubernetes-manifesten, met de verplichte velden apiVersion, kind, metadata en spec. De de facto standaard voor K8s-deployments.
- Norway-probleem (YAML 1.1)
- YAML 1.1 interpreteert NO/On/Off als booleaanse false, waardoor landnamen verkeerd werden ingedeeld. YAML 1.2 verhelpt dit; de output van deze tool voldoet aan 1.2.
- Docker Compose
- Het YAML-configuratiebestand voor Docker multi-container orchestration, met secties zoals services, networks en volumes. De de facto standaard voor containerdeployments.
JSON-typen naar YAML-syntaxis
Deze tool past de volgende regels toe om JSON-typen naar YAML-typen te converteren:
| JSON-type | YAML-syntaxis | Toelichting |
|---|---|---|
| string | name: "Alice" | YAML gebruikt standaard geen aanhalingstekens; bij speciale tekens zijn dubbele aanhalingstekens nodig |
| integer | port: 8080 | YAML herkent getallen automatisch, zonder aanhalingstekens |
| float | ratio: 3.14 | Gebroken getallen worden net als integers automatisch herkend |
| boolean | enabled: true | YAML gebruikt alleen kleine letters true/false; YAML 1.1 accepteerde ook yes/no |
| null | value: null of value: ~ | YAML gebruikt null of de tilde om een lege waarde aan te geven |
| array | - item1\n- item2 | YAML gebruikt een `-` aan het begin van elke regel voor arrays |
| object | key:\n sub: value | Objecten gebruiken `key: value`; nesting wordt door inspringing weergegeven |
| object array | - name: a\n- name: b | Arrays van objecten gebruiken `-` gevolgd door sleutel-waardeparen |
YAML-tekenreeksstijlen
YAML ondersteunt 6 tekenreeksstijlen; kies wat past bij je use case:
| Stijl | Syntaxisvoorbeeld | Gebruiksscenario |
|---|---|---|
geen aanhalingstekens | name: Alice | Eenvoudige tekenreeksen, meest gebruikt |
dubbele aanhalingstekens | name: "Alice" | Bevat speciale tekens, ondersteunt escapes zoals \n |
enkele aanhalingstekens | name: 'Alice' | Letterlijke tekenreeks, geen escapes |
blokstijl | bio: |\n line1\n line2 | Behoudt alle regelovergangen en inspringing (heredoc) |
vouwstijl | bio: >\n line1\n line2 | Eén regelovergang wordt spatie, dubbele regelovergang wordt alineascheiding |
expliciete tag | value: !!str 123 | Dwingt een type af en overschrijft de standaardinferentie |
JSON naar YAML conversievoorbeelden
Complexe JSON-structuren met bijbehorende YAML-output:
| Structuur | Voorbeeld |
|---|---|
| JSON-invoer | {"name": "app", "port": 8080} |
| YAML-uitvoer | name: app
port: 8080 |
| JSON-invoer | {"server": {"host": "0.0.0.0", "port": 443}} |
| YAML-uitvoer | server:
host: 0.0.0.0
port: 443 |
| JSON-invoer | {"hosts": [{"ip": "10.0.0.1"}, {"ip": "10.0.0.2"}]} |
| YAML-uitvoer | hosts:
- ip: 10.0.0.1
- ip: 10.0.0.2 |
| JSON-invoer | {"spec": {"replicas": 3, "image": "nginx:1.25"}} |
| YAML-uitvoer | spec:
replicas: 3
image: nginx:1.25 |
Privacy & Security
Alle JSON-parsing, YAML-generatie, string-escapes, Unicode-conversie, slimme JSON-fix en bestandslezing worden volledig in de JavaScript-engine van je browser uitgevoerd. Je JSON-inhoud en de gegenereerde YAML-configuratie worden niet naar een server gestuurd en ook niet vastgelegd of geanalyseerd. JSON met databasewachtwoorden, API-sleutels of Kubernetes Secrets kun je dus met een gerust hart converteren. De lokale geschiedenis wordt uitsluitend in de localStorage van je eigen browser bewaard en kan worden verwijderd door de browser te sluiten of de cache te wissen.
Authoritative References
- yaml.orgYAML 1.2 officiële specificatie
- yaml.orgYAML officiële FAQ
- WikipediaYAML - Wikipedia
- KubernetesKubernetes YAML officiële tutorial
- DockerDocker Compose officiële documentatie
- JSON Compress
- CSV naar JSON Converter
- JSON naar CSV
- JSON Diff
- JSON Escape / Unescape
- JSON afvlakken
- JSON Formatter
- JSON-generator
- JSONPath Online Query
- JSON samenvoegen
- JSON repareren
- JSON Schema Validator
- JSON sorteren
- JSON Stringify
- JSON naar HTML-tabel
- JSON naar Java
- JSON to Markdown
- JSON naar SQL
- JSON naar TOML
- JSON naar TypeScript
- XML naar JSON
- JSON naar XML
- YAML naar JSON
- JSON naar YAML
- JSON naar Python
- JSON naar Go
- JSON naar Rust
- JSON naar Swift
- JSON naar C#
- JSON naar C++
- JSON naar PHP