Cookies voor statistiek en advertenties
We gebruiken cookies voor statistiek en voor advertenties, allebei naar Google. Weigeren verandert niets aan wat je te zien krijgt.Lees de privacypagina
Hier zet je CSV naar JSON om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.
Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.
Ze worden een voor een omgezet en samen in één ZIP gedownload.
CSV naar JSON
CSV is wat elke database, elk rekenblad en elk analyseprogramma eruit gooit; JSON is wat elke API, elke test-fixture en elk configuratiebestand verwacht. Het gat ertussen is klein en saai, en precies zulke gaten verdienen een knop in plaats van elke keer een wegwerpscript.
De kopregel levert de sleutels en elke volgende regel wordt één object — de vorm waar vrijwel alles verderop van uitgaat. Velden tussen aanhalingstekens, ontsnapte aanhalingstekens en regeleinden binnen een cel worden netjes gelezen, dus een adreskolom met een komma erin komt heel aan de overkant. Naïef splitsen op komma’s doet dat niet.
Typen worden afgeleid, en dat is het deel dat je moet nakijken. Wat op een getal lijkt wordt een JSON-getal en `true`/`false` worden booleans, en dat is bijna altijd wat je wilt bij aantallen en vlaggen.
Bij identificatienummers is het het verkeerde antwoord. `007` wordt `7`, en een artikelnummer of een rekeningnummer met voorloopnullen verliest ze zonder waarschuwing. Voor Nederlandse gegevens is dit geen randgeval: elk telefoonnummer begint met een nul, dus van `0612345678` blijft `612345678` over en van `070` blijft `70`. Ook een BSN met een voorloopnul en een gemeentecode zoals `0363` sneuvelen op dezelfde manier. Bevat je bestand codes in plaats van hoeveelheden, kijk dan naar de uitvoer voordat je erop bouwt — dit is verreweg de vaakste manier waarop een omzetting geldige JSON oplevert met verkeerde gegevens erin.
Alles draait in je browser, dus een grote export gaat zo snel als je machine toelaat en verlaat je apparaat niet. Bij dit paar telt dat zwaarder dan bij de meeste: een CSV is heel vaak een klantenlijst, een orderhistorie of een export uit een systeem dat je liever niet aan een derde partij beschrijft.
Dat scheelt ook een gesprek. Persoonsgegevens die nooit verzonden worden hoeven niet in een verwerkersovereenkomst te staan, en je kunt het zelf nagaan: ontwikkelaarsscherm open, tabblad Netwerk erbij, en dan iets omzetten.
Omdat alles wat op een getal lijkt een getal wordt, is de verdediging voor een kolom met codes om die kolom vooraf ondubbelzinnig te maken: een apostrof ervoor in het rekenblad, een voorvoegsel, of de kolom al met aanhalingstekens exporteren.
De vuistregel is het onthouden waard. Zou je twee waarden in een kolom nooit bij elkaar optellen, dan is het een identificatie en hoort ze tekst te blijven. Postcodes, artikelnummers, telefoonnummers en rekeningnummers zakken allemaal voor die optelproef.
Een lege cel wordt `null` en geen lege tekst. Een regel `1,,3` onder de kopregel `a,b,c` komt eruit als `{"a":1,"b":null,"c":3}`: dat is het bewuste gevolg van dezelfde typeherkenning die van `1` een getal maakt in plaats van `"1"`.
Het maakt uit zodra het programma dat de JSON leest die twee uit elkaar houdt: een JSON Schema dat een tekst eist, wijst `null` af, en een kolom die als NOT NULL is aangemaakt weigert de regel. Daar komt bij dat een CSV het verschil tussen een veld dat leeg was en een veld dat er niet was sowieso niet kan uitdrukken. Betekent dat onderscheid iets bij jou, dan moet het expliciet in het CSV staan of achteraf worden hersteld. Geen enkele omzetting haalt informatie terug die het bronformaat niet kan dragen.
Twee kolommen met dezelfde kop botsen, want sleutels in een object zijn uniek: de laatste wint en de eerste verdwijnt zonder melding. Eén blik op de kopregel voor je omzet is de moeite waard.
Een kopregel die korter is dan de gegevensregels laat de overige kolommen zonder sleutel achter. Repareer de kop in het CSV — het is een wijziging van één regel, en het is de enige plek waar die informatie bestaat.
Het inlezen gaat snel en de grens is geheugen, omdat de hele array wordt opgebouwd voordat er iets weggeschreven wordt. Tientallen megabytes zijn routine; bij honderden begint een tabblad te kraken.
Voor een export in die orde is een streaming parser in een script het juiste gereedschap, en geen omzetting in een browser. Dat zeggen is beter dan halverwege een bestand van 900 MB stranden.
De uitvoer is een array met objecten, en dat is wat API’s, test-fixtures en de meeste bibliotheken verwachten. Het is geen JSON per regel, en het is geen object dat op een id-kolom gesleuteld staat.
Allebei zijn ze een paar regels omvormen verderop zodra je de array hebt, en geen van beide is voor je te kiezen zonder te weten welke kolom de sleutel is. Een array veronderstelt het minst.
| CSV | JSON | |
|---|---|---|
| Volledige naam | Comma-Separated Values | JavaScript Object Notation |
| Bestandsextensie | .csv | .json |
| Mediatype | text/csv | application/json |
| Voor het eerst gepubliceerd | 1972 | 2001 |
| Specificatie | RFC 4180 | RFC 8259 |
| Licentie | Open standaard | Open standaard |
| Stand van zaken | Actueel | Actueel |
| Opent in een browser | Geen browser | Elke browser |
| In plaats daarvan overwogen | XLSX, Parquet | XML, YAML, NDJSON |
Er gaat niets verloren. CSV en JSON bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.
JSON opent in elke actuele browser. CSV komt nog minder ver. Gaat het bestand naar een webpagina of een formulier, dan is dat meestal de hele reden voor de omzetting.
De gebruikelijke programma's overlappen niet: CSV open je in Microsoft Excel, LibreOffice Calc en pandas, JSON in Visual Studio Code, jq en Postman — wie het resultaat krijgt, heeft dus iets uit de tweede rij nodig.
CSV verscheen in 1972. Het is vastgelegd in RFC 4180, en dat is de moeite waard als het bestand het gereedschap moet overleven dat het schreef.
JSON stamt uit 2001, vastgelegd in RFC 8259. Visual Studio Code, jq en Postman lezen het formaat.
CSV verscheen in 1972 en JSON in 2001. Het oudste is doorgaans het veiligste bestand om te overhandigen; het nieuwste doet hetzelfde werk met minder bytes.
Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt.
Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk.
Nee. JSON bewaart dezelfde inhoud zonder iets weg te gooien: het resultaat is in kwaliteit identiek aan het origineel.
Er gaat niets verloren. CSV en JSON bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.