CSV naar JSON omzetten

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.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Zonder verlies Er gaat niets weg. JSON bewaart precies wat CSV bewaarde.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Waarom je een CSV überhaupt naar JSON omzet

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.

Wat je krijgt: een array met objecten, gesleuteld op de kopregel

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.

Typeherkenning, en waar ze je pijn doet

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.

Een klantenexport omzetten zonder hem te uploaden

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.

Identificatienummers als tekst houden

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.

Lege cellen, en wat daarvan wordt

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.

Dubbele en ontbrekende kolomnamen

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.

Hoe groot een bestand mag zijn

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 vorm die je krijgt, en de vormen die je niet krijgt

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.

Zo zet je CSV naar JSON om

  1. Sleep je CSV-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies JSON als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare JSON-bestand.

CSV of JSON: wat er verandert

CSV vergeleken met JSON
CSVJSON
Volledige naamComma-Separated ValuesJavaScript Object Notation
Bestandsextensie.csv.json
Mediatypetext/csvapplication/json
Voor het eerst gepubliceerd19722001
SpecificatieRFC 4180RFC 8259
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserElke browser
In plaats daarvan overwogenXLSX, ParquetXML, YAML, NDJSON

Wat behouden blijft

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.

Het resultaat openen

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.

Waarvoor elk formaat bedoeld is

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.

Van CSV naar JSON: veelgestelde vragen

Wordt mijn CSV-bestand ergens heen geüpload?

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.

Is CSV naar JSON omzetten gratis?

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.

Gaat er kwaliteit verloren bij het omzetten van CSV naar JSON?

Nee. JSON bewaart dezelfde inhoud zonder iets weg te gooien: het resultaat is in kwaliteit identiek aan het origineel.

Is CSV naar JSON verliesvrij?

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.

Meer over deze formaten