tigtools

CSV-naar-JSON-converter

Plak CSV-tekst of open een bestand om een JSON-array met objecten of arrays te maken. De gegevens worden in je browser verwerkt en verlaten je apparaat dus niet.

Werkt in je browser Geen registratie nodig

Uitvoer

Zo gebruik je deze tool

  1. Plak CSV-tekst, open een .csv- of .tsv-bestand of klik op ‘Probeer een voorbeeld’.
  2. Laat ‘Automatisch detecteren’ staan of kies zelf het scheidingsteken. Geef ook aan of de eerste regel kolomnamen bevat.
  3. Schakel desgewenst de herkenning van getallen, booleans en null in en kies objecten of arrays als uitvoer.
  4. Kopieer de JSON of download deze als .json-bestand.

Hoe het werkt

De parser volgt RFC 4180, de CSV-specificatie: velden kunnen tussen dubbele aanhalingstekens staan, een veld tussen aanhalingstekens kan het scheidingsteken en regeleinden bevatten, en twee dubbele aanhalingstekens binnen zo’n veld staan voor één aanhalingsteken. Regeleinden kunnen CRLF (Windows), LF (macOS, Linux) of CR zijn. Een regeleinde aan het einde maakt geen lege record aan. Volledig lege regels worden overgeslagen. Een byte-ordermarkering aan het begin, die Excel vaak toevoegt, wordt verwijderd. Als een veld tussen aanhalingstekens niet wordt afgesloten, krijg je een foutmelding met de regel waar het veld begint. Zonder die melding zou de rest van het bestand stilzwijgend worden samengevoegd in één cel.

Automatische detectie probeert een komma, puntkomma, tab en pipe op de eerste regels en kiest het scheidingsteken dat een consistent aantal kolommen oplevert. Met een kopregel wordt elke record een object met de kolomnamen als sleutels. Lege namen worden column_1, column_2… en dubbele namen krijgen een achtervoegsel, zoals id_2. Regels met minder velden dan de kopregel krijgen lege waarden; extra velden krijgen extra kolomnamen.

Standaard blijft elke waarde een tekenreeks. Dat is de veilige keuze: postcodes zoals 01234, telefoonnummers en ID's behouden hun voorloopnullen. Als typeherkenning is ingeschakeld, worden waarden die precies als JSON-getallen zijn geschreven getallen (maar 007, 1,5 en gehele getallen groter dan 2^53 niet). true en false worden in elke lettercombinatie booleans, en null of een lege cel wordt null. Datums blijven tekst.

Voorbeelden

Een spreadsheet-export

id,name,price\n1,Desk,149.90 wordt omgezet naar [{"id":"1","name":"Desk","price":"149.90"}]. Met typeherkenning ingeschakeld wordt het {"id":1,"name":"Desk","price":149.9}.

Europese Excel-bestanden

Een bestand dat in Duitsland met Excel is opgeslagen, gebruikt puntkomma's: Name;Preis\nTisch;149,90. Automatische detectie kiest de puntkomma. 149,90 blijft de tekenreeks "149,90", omdat het geen JSON-getal is.

Cellen met regeleinden

Een adrescel als "221B Baker Street London" (tussen aanhalingstekens en verspreid over twee regels) blijft één waarde, "221B Baker Street\nLondon", en begint dus geen nieuwe rij.

Veelgestelde vragen

Waarom zijn mijn getallen tekenreeksen in de JSON?

CSV kent geen gegevenstypen, dus standaard blijft elke waarde precies zoals geschreven tekst. Schakel ‘Getallen, true/false en null herkennen’ in om waarden die op getallen lijken om te zetten. Voorloopnullen en decimale komma's blijven tekst, zodat gegevens niet onbedoeld veranderen.

Wat gebeurt er als een rij meer of minder kolommen heeft dan de kopregel?

Ontbrekende waarden worden lege tekenreeksen (of null als typeherkenning is ingeschakeld). Extra waarden blijven behouden onder extra sleutels met de naam column_N, zodat er geen gegevens verloren gaan.

Kan de tool Excel .xlsx-bestanden lezen?

Nee, alleen tekstbestanden met CSV of TSV. Kies in Excel of Google Sheets Bestand › Opslaan als / Downloaden › CSV en open dat bestand hier.

Hoe groot mag een bestand zijn?

Bestanden van enkele megabytes worden op een desktopcomputer in een oogwenk omgezet. De limiet wordt bepaald door het geheugen van je apparaat, omdat het hele bestand en het JSON-resultaat in het browsertabblad worden bewaard.

Privacy

Je CSV wordt alleen in je browser gelezen en omgezet. Geopende bestanden worden niet geüpload en er worden geen gegevens opgeslagen of naar analysediensten verstuurd.