JSON, YAML, CSV: Wanneer gebruik je welk formaat en hoe converteer je
Je downloadt een dataset en het is CSV. Je API retourneert JSON. Je configuratiebestand is in YAML. Een collega stuurt je een JSON-bestand en vraagt om een spreadsheet. Een andere collega geeft je een YAML-configuratie en je hebt het als JSON nodig voor een andere tool.
Conversie tussen dataformaten is een van die taken die triviaal lijken totdat je er daadwerkelijk mee bezig bent. Begrijpen wanneer je welk formaat moet gebruiken, en hoe je ertussen kunt wisselen, bespaart echt tijd.
De drie formaten in een oogopslag
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
Wat het is: Een tekstformaat voor gestructureerde gegevens dat objecten (sleutel-waardeparen), arrays (geordende lijsten), strings, getallen, booleans en null ondersteunt.
Sterke punten: Machineleesbaar, breed ondersteund in elke programmeertaal, verwerkt geneste gegevens op natuurlijke wijze, strikte syntaxis voorkomt dubbelzinnigheid.
Zwakke punten: Uitgebreid (veel accolades, haakjes en aanhalingstekens), minder leesbaar voor mensen dan YAML, geen ondersteuning voor commentaar.
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
Wat het is: Een mensvriendelijk data-serialisatieformaat dat inspringing gebruikt in plaats van accolades en haakjes. Het is een superset van JSON, wat betekent dat geldige JSON ook geldige YAML is.
Sterke punten: Uiterst leesbaar, ondersteunt commentaar, minder visuele ruis, uitstekend voor configuratiebestanden.
Zwakke punten: Gevoelig voor inspringing (makkelijk te breken met verkeerde spatiëring), sommige verrassende parsinggedragingen, langzamer te parsen dan JSON.
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
Wat het is: Een plat tekstformaat waarbij elke regel een rij is en waarden binnen een rij gescheiden worden door komma's (of soms puntkomma's of tabs).
Sterke punten: Universeel (elk spreadsheetprogramma, elke database en elke datatool ondersteunt het), compact voor tabelgegevens, makkelijk te lezen en aan te maken.
Zwakke punten: Geen ondersteuning voor geneste gegevens, geen datatypes (alles is een string), geen standaard voor speciale tekens, beperkt tot platte tabellen.
Wist je dat? YAML is technisch gezien een superset van JSON. Dit betekent dat elk geldig JSON-document automatisch een geldig YAML-document is. Je kunt JSON in een YAML-parser plakken en het werkt. Het omgekeerde is niet waar — YAML-functies (commentaar, ankers, meerregelige strings) hebben geen JSON-equivalent.
Wanneer gebruik je welk formaat
| Toepassing | Beste formaat | Waarom |
|---|---|---|
| API-verzoeken en -antwoorden | JSON | Industriestandaard, elke taal heeft native ondersteuning |
| Configuratiebestanden | YAML | Leesbaar voor mensen, ondersteunt commentaar voor documentatie |
| Spreadsheetgegevens | CSV | Opent direct in Excel, Google Sheets, etc. |
| Database-exports | CSV | Platte tabelgegevens passen direct op rijen en kolommen |
| Complexe geneste gegevens | JSON of YAML | CSV kan geen nesting weergeven |
| Gegevensuitwisseling tussen systemen | JSON | Ondubbelzinnige parsing, strikte specificatie |
| Handmatig bewerkte configuratie | YAML | Makkelijker te lezen en met de hand te bewerken |
| Eenvoudige gegevenslijsten | CSV | Lichtgewicht, geen overhead |
Converteren tussen formaten
JSON naar YAML
Dit is de meest voorkomende configuratieconversie. Je hebt een JSON-configuratie van de ene tool en hebt YAML nodig voor een andere. De conversie is eenvoudig omdat YAML alles ondersteunt wat JSON kan.
{"server": {"host": "0.0.0.0", "port": 8080}}
Wordt:
server:
host: 0.0.0.0
port: 8080
YAML naar JSON
Van YAML naar JSON gaan is ook eenvoudig, maar je verliest commentaar (JSON ondersteunt dat niet) en het resultaat is uitgebreider.
JSON naar CSV
Dit werkt goed voor platte JSON-arrays (arrays van objecten met dezelfde sleutels). Elk object wordt een rij en elke sleutel wordt een kolomkop.
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
Wordt:
name,age
Alice,30
Bob,25
Waarschuwing JSON-naar-CSV-conversie werkt niet wanneer de JSON geneste objecten of arrays bevat. CSV is plat — het kan geen "skills"-array of een genest "address"-object weergeven. Geneste gegevens moeten ofwel worden platgeslagen (address.city, address.country als aparte kolommen) of als string worden opgeslagen in een CSV-cel.
CSV naar JSON
Elke rij wordt een object, met kolomkoppen als sleutels. Dit is netjes voor eenvoudige tabelgegevens.
CSV naar YAML
Minder gebruikelijk, maar volgt dezelfde logica: elke rij wordt een YAML-mapping en het hele bestand wordt een YAML-reeks.
Veelvoorkomende valkuilen
CSV-coderingsproblemen
CSV-bestanden kunnen verschillende tekencoderingen gebruiken (UTF-8, Latin-1, Windows-1252). Als je een CSV opent en verminkte tekens ziet zoals "München" in plaats van "München," is het een coderingsprobleem. Gebruik waar mogelijk altijd UTF-8.
CSV-scheidingstekenverwarring
Niet alle CSV's gebruiken komma's. Europese CSV's gebruiken vaak puntkomma's omdat komma's in veel Europese getalnotaties als decimaalteken worden gebruikt. Tab-gescheiden waarden (TSV) zijn een andere veelvoorkomende variant.
YAML-inspringfouten
YAML gebruikt inspringing (spaties, nooit tabs) om structuur te definiëren. Een inconsistente inspringing, of het mengen van tabs en spaties, levert parsingfouten of stille misinterpretatie op. Gebruik exact 2 spaties per inspringniveau en stel je editor in om spaties in te voegen in plaats van tabs.
Waarschuwing In YAML wordt de string no als boolean false geparsed, en yes als true. De string 1.0 wordt als getal geparsed. Als je de letterlijke strings "no," "yes," of "1.0" bedoelt, moet je ze tussen aanhalingstekens zetten: "no", "yes", "1.0". Dit is een van de beruchtste valkuilen van YAML.
JSON-afsluitende komma's
JSON staat geen afsluitende komma's toe. Dit is geldig in JavaScript maar ongeldig in JSON:
{"name": "Alice", "age": 30,} // Ongeldige JSON: afsluitende komma
Prestaties bij grote bestanden
Voor zeer grote datasets (miljoenen rijen) is CSV efficiënter dan JSON of YAML omdat het minimale overhead per record heeft. JSON voegt accolades en aanhalingstekens toe voor elke waarde, wat de bestandsgrootte aanzienlijk vergroot bij grote tabelgegevens.
Praktische tools voor conversie
Voor snelle, eenmalige conversies zijn browsergebaseerde tools de snelste optie. Je plakt of uploadt je gegevens, selecteert het doelformaat en krijgt direct het resultaat.
Tip Converteer direct tussen JSON-, YAML- en CSV-formaten: Dataformaten converteren. Plak je gegevens, kies het doelformaat en kopieer of download het resultaat.
Voor het werken met JSON is een formatter die je JSON valideert en netjes opmaakt onmisbaar:
- JSON Formatter — valideer, formatteer en minificeer JSON
- JSON naar CSV Converter — converteer JSON-arrays naar CSV
- YAML-JSON Converter — converteer tussen YAML en JSON
- CSV Viewer — bekijk en verken CSV-bestanden
Converteer je gegevens nu:
Alle tools zijn gratis en werken direct in je browser.