YAML vs JSON naast elkaar: syntax, comments, types, tekst over meerdere regels en de yes/no-valkuil. Test hoe een kale waarde wordt gelezen, en beslis .yaml vs .yml voorgoed.
JSON is een strikt dataformaat voor programma's: accolades, blokhaken, strings tussen dubbele aanhalingstekens en geen comments. YAML drukt dezelfde data uit met inspringing, staat comments en tekst over meerdere regels toe, en versie 1.2 is ontworpen als superset van JSON. Kies JSON voor API's en machine-output, YAML voor bestanden die mensen met de hand bewerken.
YAML en JSON per kenmerk vergeleken
Beide formaten beschrijven dezelfde dingen: maps, lijsten, strings, getallen, booleans en null. De echte verschillen zijn wie het bestand leest en hoe vergevingsgezind de parser is. Probeer de waardechecker hieronder om te zien hoe een waarde zonder aanhalingstekens een type krijgt, en lees dan de voorbeelden naast elkaar en de valkuilen voor wie tussen de twee wisselt.
YAML 1.2 is zo geschreven dat het een strikte superset van JSON is, dus in de praktijk laadt een JSON-document in een YAML 1.2-parser. Er bestaan randgevallen, zoals dubbele keys, die JSON-parsers vaak toestaan maar YAML verbiedt.
Gebruik .yaml. RFC 9512, dat het mediatype application/yaml registreert, noemt .yaml de voorkeursextensie en merkt op dat .yml nog steeds wordt gebruikt. Beide werken in tools zoals GitHub Actions, dus de keuze gaat om consistentie binnen één project.
YAML 1.1 behandelde woorden als yes, no, on, off, y en n als booleans. Het core schema van YAML 1.2 accepteert alleen true en false in drie schrijfwijzen, maar oudere parsers komen nog veel voor. Aanhalingstekens rond de waarde nemen de twijfel weg.
Nee. RFC 8259 somt de tokens op die JSON mag bevatten, en comments horen daar niet bij. Sommige tools accepteren een soepelere JSON met comments, maar een strikte parser weigert het bestand.
De grammatica van JSON is veel kleiner, en browsers leveren er een native parser voor mee, dus het is meestal de snellere en veiligere keuze voor data die over het netwerk gaat. YAML-parsers moeten veel meer regels toepassen, van inspringing tot impliciete typering.
Dezelfde site-instellingen in beide formaten. YAML laat de aanhalingstekens en accolades weg en voegt een comment toe; JSON schrijft elke string en elk nestingniveau voluit.
Inspringing van twee spaties, een comment, een lijst en een versiestring tussen aanhalingstekens zodat hij tekst blijft.
Een comment is niet mogelijk, en elke key en string heeft dubbele aanhalingstekens.
Hoe een YAML-waarde zonder aanhalingstekens een type krijgt, en de veilige versie
Typ een waarde zoals die na een dubbele punt in een YAML-bestand zou staan, zonder aanhalingstekens. De checker past de regels van het core schema van YAML 1.2 toe, de booleanlijst van YAML 1.1 en de grammatica van JSON.
Waarde zonder aanhalingstekens
Core schema van YAML 1.2
YAML 1.1-parsers
JSON, zoals geschreven
Dezelfde waarde in JSON
boolean {v} (YAML 1.1 leest dit woord als boolean)
Geen yes/no-booleanvalkuil voor deze waarde
Geldige JSON-waarde
Geen geldige JSON zonder aanhalingstekens
JSON kan dit getal niet schrijven
Probeer er een
Gratis beginnen · Geen creditcard nodig