CSV (Comma-Separated Values, kommagescheiden waarden) is een veelgebruikt plat gegevensformaat dat tabelgegevens opslaat in platte tekst, met een scheidingsteken (meestal komma) tussen kolommen en een regeleinde tussen rijen. Het is een van de meest voorkomende formaten voor gegevensuitwisseling tussen spreadsheets (Excel/Google Sheets), databases en verschillende systemen— bijna alle programma's kunnen CSV exporteren en importeren.
JSON (JavaScript Object Notation) is een lichtgewicht gegevensuitwisselingsformaat dat veel wordt gebruikt in webontwikkeling, API's en NoSQL-databases. Het is gemakkelijk leesbaar voor mensen en gemakkelijk te parseren voor machines, en is het standaardformaat geworden voor moderne webapplicaties om gegevens uit te wisselen. Het grootste verschil tussen CSV en JSON is: CSV is een platte tabel, JSON ondersteunt geneste structuren en arrays, en heeft gegevenstypen (getallen, booleans, null in plaats van alleen strings).
Waarom CSV naar JSON converteren? De meeste spreadsheet- en databasesystemen exporteren standaard CSV, maar frontend-code, API's en NoSQL-databases (MongoDB, Firebase, enz.) vereisen JSON-formaat. Handmatige conversie is foutgevoelig en tijdrovend, vooral wanneer de gegevens aanhalingstekens, escapetekens of regeleinden binnen velden bevatten. Een goede parser moet de RFC 4180 standaard volgen om deze complexe situaties correct af te handelen.
RFC 4180 is de officiële MIME-standaard voor CSV-formaat, die belangrijke regels definieert zoals: velden met scheidingstekens/regeleinden/aanhalingstekens moeten tussen dubbele aanhalingstekens staan; dubbele aanhalingstekens binnen een veld moeten worden ge-escaped met een extra dubbel aanhalingsteken (); de laatste rij mag al dan niet een regeleinde hebben. Veel eenvoudige zelfgemaakte parsers negeren deze regels, waardoor fouten ontstaan bij het parseren van complexe gegevens—deze converter gebruikt de Papa Parse bibliotheek die RFC 4180 volledig volgt.
Scheidingsteken is het meest voorkomende probleem bij het parseren van CSV. Hoewel de naam CSV (kommagescheiden waarden) suggereert dat komma het scheidingsteken is, gebruiken Europese landen veel puntkomma (;) omdat komma wordt gebruikt als decimaalteken; TSV (Tab-Separated Values) gebruikt tabs als scheidingsteken; en sommige systemen gebruiken pijp (|). Deze converter detecteert automatisch het meest waarschijnlijke scheidingsteken, of je kunt het handmatig selecteren.
Typeconversie is een andere belangrijke functie: standaard zijn alle waarden in CSV strings, maar JSON heeft verschillende gegevenstypen. Met typeconversie ingeschakeld herkent de converter automatisch numerieke waarden (42 → 42 i.p.v. "42"), booleans (true/false/yes/no), lege waarden (→ null) en ISO 8601 datumnotaties, waardoor het resultaat beter bruikbaar is in code.
Geavanceerde functies zoals geneste objecten en arrays lossen het nadeel op dat CSV alleen platte structuren kan zijn. Puntnotatie (adres.stad) maakt automatisch geneste objecten, waardoor je hiërarchische JSON kunt genereren uit platte CSV; kolommen met dezelfde naam of []-achtervoegsel worden gecombineerd tot arrays, geschikt voor scenario's zoals tags en meerdere telefoonnummers.
Alle conversie wordt lokaal in de browser uitgevoerd met de Papa Parse bibliotheek, zonder dat je een bestand hoeft te uploaden naar een server. Dit beschermt de privacy van gevoelige gegevens (zoals interne bedrijfsgegevens, klantgegevens), en is ook snel— grote bestanden worden direct geparseerd zonder netwerkwachttijd. Na het parseren kun je direct het resultaat kopiëren of downloaden als JSON-bestand.