CSV naar JSON: conversie, valkuilen en praktische tips
Deze pagina converteert een enkel bestand van het ene formaat naar het andere. De conversie vindt volledig plaats in uw browser. Er wordt geen bestand geüpload naar een server. Dit heeft twee praktische implicaties:
- Gevoelige gegevens blijven lokaal. Als u een CSV converteert met contactgegevens van klanten, medische dossiers of financiële transacties, verlaten de ruwe gegevens uw apparaat nooit. De tool werkt offline nadat de pagina is geladen.
- Bestandsgroottebeperkingen worden in de browser afgedwongen. Omdat de verwerking lokaal plaatsvindt, kunnen zeer grote bestanden ertoe leiden dat het browsertabblad niet meer reageert of crasht. De tool accepteert bestanden tot 8 MB. Als dit wordt overschreden, wordt het volgende weergegeven: Dit bestand is te groot. Gebruik een bestand onder ‹max›..
De tool beperkt tabellen ook tot 10.000 rijen en 200 kolommen. Als de conversie langer duurt dan ongeveer 12 seconden, wordt deze gestopt en ziet u: Deze conversie duurt te lang. Probeer een kleiner bestand.. U hoeft zich niet af te vragen of het tabblad is vastgelopen.
De tool behandelt de meest voorkomende fouten met specifieke berichten. Het is de moeite waard om deze van tevoren te kennen, omdat ze vaak wijzen op specifieke oorzaken.
| Foutmelding | Meest waarschijnlijke oorzaak
Wat deze pagina doet en waarom het verschilt
U hebt een CSV-bestand – rijen tekst gescheiden door komma’s, puntkomma’s of tabs – en u wilt dat omzetten naar een JSON-bestand. Het resultaat is meestal een array van objecten: elke rij wordt één object, elke kolom wordt een sleutel. U sleept het bestand naar de tool, selecteert het juiste scheidingsteken als uw CSV geen komma gebruikt, bekijkt de voorvertoning en downloadt de voltooide JSON.
Wat deze conversie anders maakt dan bijvoorbeeld JSON naar CSV of Excel naar JSON, staat in de unieke eigenschappen van CSV als bronformaat:
- Geen types in de bron, wél typen in het doel. CSV slaat alles op als platte tekst. JSON ondersteunt getallen, booleanwaarden,
nullen geneste structuren. Elk CSV-veld arriveert als string, dus getallen (prijzen, aantallen), datums en identifiers met leidende nullen (postcodes, productcodes) worden niet automatisch numeriek of datumwaarden in de JSON-uitvoer – ze blijven strings tenzij u er later zelf iets aan doet. - Geen nesting mogelijk. Omdat CSV strikt een platte tabel is, produceert de conversie een platte array van platte objecten. Hiërarchische JSON (objecten binnen objecten) kan niet uit één CSV-bestand worden gemaakt zonder extra regels die deze tool niet toepast. (De omgekeerde richting – JSON naar CSV – moet geneste velden juist afvlakken.)
- Het scheidingsteken is cruciaal. U moet aangeven of uw CSV komma’s, puntkomma’s of tabs gebruikt.
- Ingebedde komma’s en regeleinden zijn breekbaar. CSV-citaatregels worden niet universeel gevolgd; ingebedde komma’s tussen aanhalingstekens, regeleinden binnen cellen en niet-gescapede aanhalingstekens zijn veelvoorkomende oorzaken van parsefouten die deze conversie meer treffen dan andere formaatwisselingen.
De tool converteert één CSV-bestand naar JSON.
De fundamentele verschillen tussen CSV en JSON
CSV is een formaat zonder type-informatie. Alles wat u in een CSV ziet, is tekst – ook al staat er 12345 of 3.14. JSON daarentegen kent meerdere datatypen: number, boolean, null, string, array en object. Wanneer u CSV naar JSON converteert, blijft elk veld standaard een string. Dat is een bewuste keuze van deze tool: er wordt geen automatische interpretatie van getallen of datums uitgevoerd.
Neem een eenvoudig voorbeeld. Een CSV met twee kolommen:
naam,leeftijd
Jan,35
Marie,42
De JSON-uitvoer wordt:
[
{"naam": "Jan", "leeftijd": "35"},
{"naam": "Marie", "leeftijd": "42"}
]
Let op: leeftijd is "35", niet 35. Als u in uw toepassing een numeriek veld verwacht, moet u na het downloaden de waarden converteren, bijvoorbeeld met Number() in JavaScript of int() in Python.
Dit heeft voordelen: leidende nullen blijven behouden. Een postcode als 01234 blijft "01234" in plaats van te verworden tot 1234. Ook telefoonnummers, productcodes en andere identifiers die met een nul beginnen, blijven intact. Het nadeel is dat getallen niet automatisch kunnen worden gebruikt voor rekenkunde of sorteren – u moet ze zelf casten.
De CSV-structuur is altijd tabelvormig: elke rij heeft evenveel kolommen. Deze tool produceert een platte array van objecten. Als u geneste objecten nodig hebt, moet u het CSV-bestand aanpassen of de JSON achteraf bewerken. De omgekeerde richting (JSON naar CSV) vlakt geneste structuren af, waarbij geneste objecten worden omgezet in kolommen met puntnotatie (bijv. adres.stad).
Het scheidingsteken kiezen en veelvoorkomende valkuilen
CSV staat voor comma‑separated values, maar in de praktijk worden ook andere scheidingstekens gebruikt, vooral in landen waar de komma als decimaalteken dient. Deze tool biedt drie opties: komma, puntkomma en tab. Als u het verkeerde scheidingsteken kiest, worden velden niet gesplitst zoals u verwacht. Een bestand dat puntkomma’s gebruikt maar met komma als scheidingsteken wordt geparseerd, zal vaak één kolom opleveren met puntkomma’s erin.
Hoe herkent u het juiste scheidingsteken?
- Open het bestand in een teksteditor (Kladblok, VS Code, Notepad++).
- Kijk naar de eerste regel: de waarden worden gescheiden door een komma
,, puntkomma;of tab\t. - Weet u het niet zeker? Vaak staat in de exportopties van uw spreadsheet of database aangegeven welk teken wordt gebruikt. In Nederlandse en Belgische contexten wordt vaak puntkomma gebruikt omdat komma het decimaalteken is.
- Sommige bestanden hebben een headerregel die het scheidingsteken toont; bij twijfel test u een paar rijen met elke optie in de voorvertoning.
Ingebedde komma’s en aanhalingstekens
Een CSV-veld dat zelf een komma bevat, moet tussen dubbele aanhalingstekens staan. Bijvoorbeeld:
product,beschrijving,prijs
"USB-C kabel, 2m","Lange kabel voor data en opladen",12.99
Hierin is "USB-C kabel, 2m" één veld. De tool verwacht dat uw CSV deze standaardquote-regels volgt (RFC 4180). Als een veld met een aanhalingsteken begint maar niet correct wordt afgesloten, of als er een aanhalingsteken binnen een veld staat zonder escaping (""), kan de parse mislukken. De tool toont dan: "This CSV could not be parsed.".
Ook regeleinden binnen een cel zijn berucht. Een cel die een regeleinde bevat, moet tussen aanhalingstekens staan en het regeleinde wordt dan in de JSON-string bewaard als . Als de aanhalingstekens ontbreken, wordt het bestand als meerdere rijen geïnterpreteerd en ontstaat een inconsistent kolomaantal.
Voorbeeld van een correcte cel met regeleinde:
opmerkingen
"Regel 1
Regel 2"
De JSON krijgt: "opmerkingen": "Regel 1 Regel 2".
Behoud van leidende nullen en tekstwaarden
Een van de krachtigste aspecten van deze tool is dat alle CSV-velden als strings worden geëxporteerd. Dat klinkt misschien onhandig, maar het is essentieel voor data-integriteit.
Stel dat u een CSV hebt met klantnummers die beginnen met een nul:
klantnummer,naam
00123,Jan
00456,Marie
Excel opent dit bestand en toont 123 en 456 – de nul is weg. Veel databasetools of JSON-bibliotheken doen hetzelfde als ze getallen automatisch casten. Deze tool niet: de JSON wordt:
[
{"klantnummer": "00123", "naam": "Jan"},
{"klantnummer": "00456", "naam": "Marie"}
]
De leidende nullen blijven behouden omdat de tool niets aanneemt over het datatype. U moet er alleen op letten dat u in uw eindtoepassing de velden als strings behandelt. Gebruik nooit Number() of parseInt() op deze waarden als u de nullen wilt houden.
Ook booleanwaarden (true/false) en null worden niet automatisch herkend. Als uw CSV true bevat, wordt dat de string "true". Wilt u een boolean in JSON, dan moet u het veld na conversie handmatig omzetten (bijvoorbeeld met een if-statement of een mappingfunctie).
De tool doet geen poging om datums te interpreteren. Datumstrings zoals 2023-12-31 blijven strings. Dat is veilig omdat datumnotaties per regio verschillen; de tool kan niet weten of 01-02-2023 1 februari of 2 januari is.
Foutcondities en beperkingen
De tool toont specifieke foutmeldingen wanneer de conversie niet kan worden voltooid. Deze meldingen zijn in het Engels:
| Situatie | Melding |
|---|---|
| CSV kan niet worden geparseerd (quoten fout, inconsistente kolommen) | "This CSV could not be parsed." |
| Bestand bevat geen gegevensrijen (alleen headers of leeg) | "This file has no table rows." |
| Meer rijen dan toegestaan | "This table has more than ‹max› rows." |
| Meer kolommen dan toegestaan | "This table has more than ‹max› columns." |
| Bestand te groot | "This file is too large. Use a file under ‹max›." |
| Verkeerd bestandstype | "Choose a CSV, JSON or XLSX file." |
| Conversie duurt te lang | "This conversion is taking too long. Try a smaller file." |
De ‹max›-waarden zijn specifiek voor de tool; ze worden in de interface getoond. Het is raadzaam om bestanden te gebruiken die binnen deze grenzen vallen. De tool accepteert bestanden van maximaal 8 MB, met niet meer dan 10.000 rijen en 200 kolommen.
Inconsistente kolomaantallen – waarbij de ene rij meer of minder velden heeft dan de andere – leiden tot parsefouten, tenzij de lege cellen expliciet zijn aangegeven (bv. waarde,,volgende) met lege strings. De tool verwacht dat elke rij hetzelfde aantal kolommen heeft als de headerrij (als die aanwezig is). Als de header ontbreekt, wordt de eerste rij als header gebruikt en moeten alle volgende rijen evenveel velden hebben.
Wie heeft dit nodig?
- Een ontwikkelaar die een CSV-export uit een database of spreadsheet krijgt en de gegevens moet inlezen in een JavaScript-toepassing of API die JSON verwacht. De tool converteert lokaal in de browser; er wordt geen data naar een server gestuurd, wat privacygevoelige gegevens beschermt.
- Een data-analist die een verouderd CSV-adresbestand met leidende nullen in postcodes wil omzetten naar JSON, terwijl die nullen intact blijven. Andere tools gooien de nullen weg; deze niet.
- Een team dat tabulaire data deelt tussen een niet-technische collega (die Excel/CSV gebruikt) en een technische stack die JSON spreekt, zonder gevoelige informatie naar een externe server te uploaden. De conversie gebeurt volledig client-side.
- Iedereen die een simpele tabel met producten, contacten of logs voorbereidt voor gebruik in een web-tool of dashboard dat JSON leest. De tool is ideaal voor eenmalige of kleine datasets.
- Een student of onderzoeker die een CSV-bestand moet omzetten naar een gestructureerd formaat voor een programmeeropdracht. Omdat de tool alle waarden als strings bewaart, leert de student dat type-conversie een eigen verantwoordelijkheid is.
Veelgestelde vragen (FAQ)
1. Waarom worden mijn getallen als strings weergegeven in de JSON?
Omdat CSV geen type-informatie kent. Alle velden zijn tekst. De tool voert geen automatische type-conversie uit, zodat leidende nullen en andere tekstuele waarden behouden blijven. U kunt de getallen na download eenvoudig converteren met een script.
2. Mijn CSV bevat gegevens met puntkomma’s; wat moet ik kiezen?
Selecteer dan “Semicolon” als scheidingsteken. Als u twijfelt, open het bestand in een teksteditor en kijk welk teken tussen de waarden staat. In Nederland en België wordt vaak puntkomma gebruikt omdat de komma het decimaalteken is.
3. Kan ik hiërarchische JSON maken uit een CSV?
Nee, niet met deze tool. CSV is altijd een platte tabel. De uitvoer is een array van objecten, elk met dezelfde sleutels. Voor nesting moet u de JSON achteraf bewerken of een ander hulpmiddel gebruiken.
4. Wat gebeurt er met aanhalingstekens in mijn CSV?
Als een veld tussen dubbele aanhalingstekens staat, worden die aanhalingstekens verwijderd en wordt de inhoud als één waarde behandeld. Aanhalingstekens die letterlijk in de waarde moeten voorkomen, worden in CSV gescapet met twee aanhalingstekens (""), die worden omgezet naar één aanhalingsteken in de JSON-string.
5. Hoe groot mag mijn CSV-bestand zijn?
De tool accepteert bestanden tot 8 MB. Ook zijn er limieten aan het aantal rijen (maximaal 10.000) en kolommen (maximaal 200). Als u een te groot bestand probeert, krijgt u een foutmelding zoals "Dit bestand is te groot. Gebruik een bestand onder ‹max›.".
6. Wordt mijn data naar een server gestuurd?
Nee. De conversie gebeurt volledig in uw browser (client-side). Uw bestand verlaat uw computer niet, tenzij u het later zelf naar een andere dienst uploadt. Dat is belangrijk voor privacygevoelige gegevens.