Utilia

JSON naar CSV omzetten

Zet JSON om naar CSV en CSV terug naar JSON in je browser. Geneste sleutels worden kolommen, scheidingstekens worden herkend en er wordt niets geüpload.

Omzetting

Zo gebruik je de JSON-naar-CSV-converter

  1. Kies de richting: JSON → CSV of CSV → JSON.
  2. Plak je gegevens in het invoervak, of klik op Bestand openen om een .json-, .csv- of .tsv-bestand van je computer te laden (maximaal 10 MB).
  3. Kies een Scheidingsteken. Bij het lezen van CSV vindt Automatisch herkennen meestal het juiste; bij het schrijven van CSV gebruikt Automatisch herkennen een komma.
  4. Pas de opties voor de huidige richting aan en klik op Omzetten. Het resultaat wordt ook bijgewerkt terwijl je typt.
  5. Kopieer of download het resultaat. Richting omdraaien zet het resultaat terug in de invoer, zodat je het de andere kant op kunt omzetten.

Van JSON naar CSV

Een CSV-bestand is een platte tabel: één kopregel met kolomnamen en één regel per record. JSON is een boom, dus de converter moet bepalen hoe records en geneste waarden rijen en kolommen worden.

  • Een array van objecten wordt één rij per object. De kolommen zijn alle sleutels samen, in de volgorde waarin ze voor het eerst voorkomen, dus een object zonder een bepaalde sleutel krijgt gewoon een lege cel.
  • Een object met één array-eigenschap, zoals {"items": [ … ]}, een gangbare vorm voor API-antwoorden, wordt uitgepakt en elk item wordt een rij. Elk ander object wordt één rij.
  • Een array van arrays is al een tabel en wordt zo geschreven, zonder kopregel.
  • Met Geneste sleutels plat maken (address.city) aan worden geneste objecten kolomnamen met punten: {"address": {"city": "Leiden"}} levert een kolom address.city op. Arrays krijgen indexkolommen: tags.0, tags.1… Met de optie uit worden geneste waarden als JSON-tekst in één cel geschreven.

Waarden met het scheidingsteken, aanhalingstekens of regeleinden worden tussen aanhalingstekens gezet volgens RFC 4180, het formaat dat Excel, LibreOffice en Google Sheets allemaal lezen. null wordt een lege cel.

Bescherming tegen spreadsheetformules

Een cel die begint met =, +, - of @ kan als formule worden uitgevoerd als je de CSV in een spreadsheet opent. Dit heet CSV-injectie. Komen je gegevens van gebruikers of andere onbetrouwbare bronnen, zet dan Beschermen tegen spreadsheetformules aan: zulke tekstcellen krijgen een apostrof ervoor, zodat de spreadsheet ze als gewone tekst toont.

Van CSV naar JSON

  • Eerste rij is een kopregel maakt van elke regel een object met de kolomnamen als sleutels. Zet het uit om een array van arrays te krijgen.
  • Getallen en booleans omzetten maakt van 42 een getal en van true een boolean, en zet lege cellen om in null. Zet het uit om elke waarde als string te houden, zodat voorloopnullen in postcodes of telefoonnummers bewaard blijven.
  • Geneste objecten opbouwen uit kolomnamen met punten draait het platmaken terug: de kolommen address.city en tags.0 leveren {"address": {"city": …}, "tags": [ … ]} op. Heen en terug JSON → CSV → JSON geeft bij gangbare gegevens dus de oorspronkelijke structuur terug.

Hebben sommige rijen meer of minder velden dan de kopregel, dan loopt de omzetting toch door, maar een waarschuwing toont de regel van de eerste afwijkende rij, zodat je die kunt controleren.

Veelgestelde vragen

Worden mijn gegevens ergens naartoe geüpload?

Nee. De omzetting draait volledig in je browser. Niets wat je plakt of opent wordt naar een server gestuurd, dus je kunt gerust exports met klant- of interne gegevens omzetten.

Waarom toont Excel mijn CSV in één kolom?

Excel gebruikt het lijstscheidingsteken van je systeem. In veel Europese landinstellingen, ook in Nederland en België, is dat de puntkomma. Kies Puntkomma (;) als scheidingsteken voordat je omzet, of gebruik de importwizard van Excel en kies daar de komma.

Hoe worden geneste arrays van objecten verwerkt?

Met platmaken aan krijgt elk element zijn eigen set kolommen, bijvoorbeeld orders.0.id en orders.1.id. Dat werkt goed voor korte arrays. Bij lange lijsten kun je die array beter apart omzetten, zodat elk element een rij wordt.

Waarom zijn de voorloopnullen van mijn postcodes verdwenen?

Als Getallen en booleans omzetten aanstaat, wordt 01234 gelezen als het getal 1234. Zet de optie uit om elke waarde precies zo te houden als in de CSV.

Wat is de maximale grootte?

Bestanden tot 10 MB kunnen worden geopend. Grotere stukken plakken werkt ook, maar de browser wordt trager bij heel grote tekstvakken, dus splits enorme bestanden eerst.