CSV naar JSON omrekenen

Zet een CSV-tabel om in een JSON-array van objecten, volledig in je browser.

Draait volledig in je browser. Er wordt niets geüpload, gelogd of opgeslagen.

Plak een export uit een spreadsheet en krijg een JSON-array terug, één object per rij, met de kolomnamen als sleutels. Het gebeurt in je browser, dus een bestand vol klantgegevens, salarissen of orderregels verlaat je computer nooit.

Hoe het werkt

Het document wordt teken voor teken gelezen volgens RFC 4180, en daardoor kan een veld het scheidingsteken, een regeleinde of een eigen aanhalingsteken bevatten: alles tussen dubbele aanhalingstekens is letterlijk, en een verdubbeld aanhalingsteken is één aanhalingsteken. Splitsen op komma's en regeleinden zou misgaan bij het eerste adres met een komma erin.

De eerste rij wordt de kolomnamen, tenzij je anders aangeeft; dan komt elke rij terug als een array in plaats van een object. Een lege naam wordt column_1, column_2 enzovoort, naar positie, en een dubbele naam krijgt een getal als achtervoegsel, want twee identieke sleutels in een object betekenen dat de eerste kolom stilletjes verdwijnt.

Elke waarde komt binnen als string, want CSV kent geen typen. Typen herkennen is een vinkje en niet de standaard: juist die herkenning maakt van productcode 007 het getal 7. Staat ze aan, dan is ze bewust voorzichtig: een voorloopnul, een voorloopplusteken of een spatie eromheen houdt de waarde een string, en hetzelfde geldt voor een geheel getal dat te groot is om als double te overleven.

Voorbeelden

Geval Invoer Resultaat
Een veld tussen aanhalingstekens met het scheidingsteken erin name,city "Doe, John",Geneva [ { "name": "Doe, John", "city": "Geneva" } ]

Veelgestelde vragen

Mijn bestand gebruikt puntkomma's. Is het dan nog CSV?

Ja, en in een groot deel van Europa is dat het normale geval. Een spreadsheet die een CSV opslaat met landinstellingen die decimalen met een komma schrijven, kan de komma niet ook als scheidingsteken gebruiken, dus neemt die de puntkomma. Kies hem in de lijst met scheidingstekens; de tab en de verticale streep staan er om dezelfde reden.

Waarom is de voorloopnul van mijn postcode verdwenen?

Dat is hij niet, tenzij je om typeherkenning hebt gevraagd. Zonder blijft elke waarde een string, precies zoals hij geschreven is. Met typeherkenning aan blijven waarden die met een nul beginnen juist daarom een string, net als alles wat met een plusteken begint of door spaties is omgeven.

Wat gebeurt er met een rij met een ander aantal velden?

Een korte rij wordt aangevuld met lege strings, omdat een leeg veld aan het eind vaak wordt weggelaten door wat het bestand ook heeft geschreven. Een lange rij houdt haar extra waarden, met namen naar positie, in plaats van ze weg te gooien, dus er verdwijnt niets zonder dat je het ziet.

Wordt mijn bestand ergens naartoe geüpload?

Nee. De pagina laadt een klein script dat het document lokaal verwerkt. Je kunt de verbinding met het netwerk verbreken zodra de pagina geladen is, en de tool blijft werken.

Goed om te weten

  • Alles gebeurt in je browser. Het document wordt niet geüpload, niet gelogd en niet opgeslagen.
  • Aanhalingstekens volgen RFC 4180: een veld komt tussen aanhalingstekens als het het scheidingsteken, een dubbel aanhalingsteken of een regeleinde bevat, en een dubbel aanhalingsteken binnen zo'n veld wordt twee keer geschreven. Backslashes zijn gewone tekens en worden nooit als escape behandeld.

Bronnen

Alle tools in Code