YAML uitgelegd + JSON vs. YAML
Bijgewerkt 2026-07-06
Als je ooit een configuratiebestand voor een modern tool hebt bewerkt — Docker Compose, GitHub Actions, Kubernetes — heb je YAML geschreven. Het is ontworpen als het meest leesbare dataformaat voor mensen, maar die leesbaarheid komt met een paar scherpe randjes. Deze gids legt uit hoe YAML werkt, welke valkuilen op te letten en hoe het zich verhoudt tot JSON.
Wat YAML is
YAML („YAML Ain’t Markup Language”) is een dataformaat om dezelfde dingen als JSON weer te geven — sleutel/waarde-paren, lijsten en geneste structuren — maar met een syntaxis afgestemd op lezen en schrijven met de hand. Het is de standaardkeuze voor configuratiebestanden juist omdat het makkelijk te scannen is.
name: RunWebTools active: true tags: - json - free address: city: London postcode: null
Hoe de syntaxis werkt
Drie ideeën dekken het meeste van YAML:
- Inspringing toont structuur. Nesting wordt met spaties uitgedrukt, niet met accolades. Items op hetzelfde inspringniveau zijn broers en zussen.
- Sleutel/waarde-paren gebruiken
key: value(de spatie na de dubbele punt is verplicht). - Lijsten gebruiken een
-vooraan elk item.
De valkuilen
Spaties, nooit tabs
YAML verbiedt tabtekens voor inspringing — ze veroorzaken een parseerfout. Stel je editor in om spaties in te voegen, want de twee zien er op het scherm identiek uit maar slechts één is geldig.
Het „Noorwegen-probleem”
YAML probeert typen te raden, wat af en toe averechts werkt. Zonder aanhalingstekens worden no, yes, on en off booleans — berucht is dat de landcode NO voor Noorwegen kan veranderen in false. Als je een letterlijke tekenreeks bedoelt, zet die tussen aanhalingstekens: "NO".
Inspringfouten zijn stil
Omdat witruimte betekenis draagt, kan één verkeerd uitgelijnde regel de structuur veranderen zonder enige fout — het bestand wordt gewoon geparseerd tot iets wat je niet bedoelde. Het door een YAML-validator halen die het geparseerde resultaat opnieuw uitgeeft, is de snelste manier om te zien wat YAML werkelijk begreep.
YAML vs. JSON
Ze kunnen dezelfde data weergeven — sterker nog, elke geldige JSON is ook geldige YAML. De afwegingen:
- Leesbaarheid: YAML wint voor mensen — geen accolades of aanhalingstekens, en het ondersteunt commentaar (
#), wat JSON niet doet. - Striktheid: JSON wint voor machines — zijn rigide syntaxis laat weinig ruimte voor het typen raden en de inspringverrassingen die YAML toestaat.
- Toepassing: grijp naar YAML voor bestanden die mensen bewerken (configuratie), en JSON voor data die programma's uitwisselen (API's).
Moet je tussen beide schakelen? Formatteer en controleer beide met de YAML-formatter en de JSON-formatter. Als YAML lastig aanvoelt, is onze gids over JSON en zijn veelvoorkomende fouten goede aanvullende lectuur.
Meer over Dataformaten & codering
Alle Dataformaten & codering-gidsen bekijken →Tools genoemd in deze gids