CSV ↔ JSON Converter

Zet CSV om naar een JSON-array van objecten en terug — velden tussen aanhalingstekens, puntkomma- en tabscheidingstekens worden ondersteund, alles in uw browser.

1.122 weergaven

Hoe de Omzetting Eigenlijk Werkt

CSV en JSON modelleren gegevens verschillend, en de richting waarin u omzet bepaalt hoeveel giswerk erbij komt kijken. CSV → JSON is bijna mechanisch: de koprij wordt de verzameling sleutels, en elke volgende rij wordt één object met die sleutels — naam,leeftijd boven Ada,36 wordt [{"naam":"Ada","leeftijd":"36"}]. Velden tussen aanhalingstekens met komma's, ge-escapete aanhalingstekens ("") en meerregelige cellen worden verwerkt volgens RFC 4180, en het scheidingsteken (komma, puntkomma of tab) wordt automatisch herkend aan de eerste regel.

JSON → CSV is waar de echte moeilijkheid zit. CSV is strikt plat — één rij, één record, één waarde per cel — terwijl JSON van nature nesting ondersteunt: een object kan een ander object of een array als waarde van een veld bevatten, en er is geen universeel aanvaarde manier om dat in één CSV-cel te proppen. Neem {"naam":"Ada","adres":{"stad":"Londen"}} — moet de kolom adres.stad heten (puntnotatie, waarbij het geneste object wordt platgeslagen tot extra kolommen), of moet de hele adres-waarde als ruwe JSON-tekst in één cel worden ingebed, zoals {"stad":"Londen"}? Beide benaderingen worden in de praktijk gebruikt en geen van beide is "dé" standaard; deze tool kiest voor puntnotatie bij één niveau van nesting en valt terug op ingebedde JSON-tekst voor arrays en diepere structuren, omdat dat eenvoudige objecten echt spreadsheet-vriendelijk houdt zonder bij complexe objecten stilzwijgend gegevens te verliezen.

Belangrijk om te beseffen: dit is geen tekortkoming van de tool, maar een gat in het datamodel zelf. Elke CSV↔JSON-converter die u probeert — deze inbegrepen — moet een redactionele keuze maken over het platslaan, omdat de twee formaten nooit zijn ontworpen om perfect uitwisselbaar te zijn. CSV is gebouwd voor tabelvormige grootboeken; JSON is gebouwd voor documenten met een willekeurige vorm. Dit vooraf weten verklaart waarom een complex JSON-bestand via CSV heen en terug omzetten zelden precies de oorspronkelijke structuur reproduceert, en waarom diep geneste gegevens in JSON-vorm bewaren vaak gewoon de juiste keuze is in plaats van een beperking om te omzeilen.

Wat de Moeite Waard Is om te Weten

  • CSV kent geen datatypes. Elke waarde blijft tekst tenzij u de getalomzetting inschakelt, die getalachtige tekenreeksen omzet in echte JSON-getallen (terwijl met nullen opgevulde ID's zoals "007" als tekst blijven staan, omdat omzetten die zou beschadigen).
  • Het scheidingsteken wordt herkend, niet aangenomen. Excel exporteert met puntkomma's in veel Europese en Turkse landinstellingen, omdat de komma daar al het decimaalteken is — de parser controleert de koprij om het juiste te kiezen.
  • JSON → CSV voegt alle sleutels samen. Als sommige records een veld hebben dat andere niet hebben, bevat de koptekst elke sleutel die ergens in de array voorkomt, en ontbrekende waarden blijven in die rij leeg.
  • Niets verlaat uw browser. Zowel het inlezen als het omzetten gebeurt lokaal in JavaScript, dus het plakken van een gevoelige export stuurt hem nergens naartoe.
  • De rijvolgorde blijft in beide richtingen behouden. De eerste gegevensrij blijft na omzetting in beide richtingen eerst, wat van belang is wanneer een spreadsheet of een script verderop in de keten vertrouwt op positionele volgorde in plaats van een expliciete sorteersleutel.

Veelgestelde vragen

Waarom zijn al mijn getallen tekst?

CSV kent geen types — alles is tekst. Schakel de optie "getallen omzetten" in om getalachtige waarden om te zetten in JSON-getallen (ID's met voorloopnullen blijven tekst, omdat omzetten die stilzwijgend zou beschadigen).

Mijn Excel-CSV gebruikt puntkomma's — werkt dat?

Ja — het scheidingsteken wordt herkend aan de eerste rij. Turkse en veel Europese Excel-landinstellingen exporteren met puntkomma's omdat de komma daar al het decimaalteken is.

Hoe zit het met geneste JSON?

CSV is plat: geneste objecten/arrays worden geserialiseerd als JSON-tekst binnen de cel, of platgeslagen tot kolommen met puntnotatie voor ondiepe objecten. Voor diep geneste gegevens kunt u die eerst afvlakken of gewoon als JSON bewaren in plaats van ze in een spreadsheet te forceren.

Waarom kiest deze tool niet gewoon één standaard voor het platslaan van geneste JSON?

Omdat die er niet is — verschillende ecosystemen zijn het hier echt niet over eens. Kolommen met puntnotatie (adres.stad) houden eenvoudige nesting leesbaar in een spreadsheet, maar vermenigvuldigen kolommen snel; de geneste waarde als ruwe JSON-tekst inbedden houdt één kolom per veld aan, maar vereist dat u die cel later opnieuw parseert. Deze tool gebruikt puntnotatie voor ondiepe objecten en valt terug op ingebedde JSON-tekst voor arrays en diepere nesting.

Wat gebeurt er met een array binnen een object bij JSON → CSV?

Die wordt geserialiseerd als JSON-tekst binnen één cel in plaats van uitgespreid over kolommen — arrays kunnen elke lengte hebben, dus er is geen vast aantal kolommen om ze aan toe te wijzen. Kopieer de inhoud van die cel en parseer hem apart als u de afzonderlijke items eruit nodig hebt.

Reacties

Nog geen reacties — schrijf de eerste!

Vergelijkbare tools