Naar inhoud springen

CSV naar JSON Converter - Gratis Online Bestandsconversiegereedschap

Converteer CSV naar JSON en JSON naar CSV direct in uw browser. Veilige, snelle gegevensconversie met voorvertoning en download. Geen uploads vereist.

CSV/JSON Bestandsconverter

Converteer eenvoudig tussen CSV en JSON formaten. Upload uw bestand, bekijk de gegevens en download het geconverteerde resultaat.

CSV naar JSON Converter

JSON naar CSV Converter

Laadcalculator...
📚

Documentatie

Wat is een CSV-naar-JSON-converter?

Een CSV-naar-JSON-converter is een hulpmiddel dat gegevens omzet van de CSV-indeling (Comma-Separated Values) naar de JSON-indeling (JavaScript Object Notation), of andersom. Deze converter werkt volledig in de webbrowser. Het geüploade bestand wordt nooit naar een server verzonden, waardoor de gegevens op het apparaat van de gebruiker blijven.

CSV is een indeling zonder opmaak die wordt gebruikt om tabellen op te slaan, zoals spreadsheets die vanuit Excel of Google Sheets zijn geëxporteerd. JSON is een tekstindeling die is opgebouwd uit sleutel-waardeparen en veel wordt gebruikt om gegevens uit te wisselen tussen webtoepassingen en API's. Omdat de twee indelingen gegevens op verschillende manieren structureren, zijn voor de conversie tussen beide een vaste reeks regels nodig, die hieronder wordt beschreven.

CSV naar JSON converteren

  1. Klik op "CSV-bestand uploaden" en kies een bestand .csv op het apparaat.
  2. Het hulpmiddel toont een voorbeeld van de onbewerkte bestandsinhoud.
  3. Klik op "Converteren naar JSON". Het hulpmiddel leest de eerste regel als kolomkoppen en zet elke andere regel om in één JSON-object.
  4. Het resultaat verschijnt in het uitvoervoorbeeld, opgemaakt met inspringing.
  5. Klik op "JSON downloaden" om het bestand op te slaan als een .json-bestand, of op "JSON kopiëren" om de tekst te kopiëren.

JSON naar CSV converteren

  1. Klik op "JSON-bestand uploaden" en kies een .json-bestand. Het bestand moet een JSON-array met objecten bevatten, bijvoorbeeld [{"Name":"Ann"},{"Name":"Bo"}].
  2. Het hulpmiddel toont een voorbeeld van de onbewerkte JSON-tekst.
  3. Klik op "Converteren naar CSV". Het hulpmiddel verzamelt elke sleutel die in de objecten wordt gebruikt en maakt van elke sleutel een kolom.
  4. Het resultaat verschijnt in het uitvoervoorbeeld als CSV-tekst.
  5. Klik op "CSV downloaden" om het bestand op te slaan als een .csv-bestand, of op "CSV kopiëren" om de tekst te kopiëren.

Er zijn geen uploadlimieten die door een server worden afgedwongen, omdat geen van de gegevens de browser verlaat. Een zeer groot bestand kan het browsertabblad nog steeds vertragen, omdat het volledige bestand tijdens de conversie in het geheugen wordt gehouden.

Regels voor CSV-naar-JSON-conversie

De converter leest de eerste rij van het bestand als kolomnamen. Elke volgende rij wordt één JSON-object, met de kolomnamen als sleutels. Een rij met meer waarden dan er kopteksten zijn, krijgt extra sleutels die worden genoemd naar hun absolute positie in de rij. Bij 3 kopteksten krijgt een vierde waarde dus de sleutel field_4, een vijfde waarde field_5, enzovoort; er gaan daardoor geen gegevens verloren. Een rij met minder waarden krijgt lege tekenreeksen voor de ontbrekende sleutels. Als twee kopteksten dezelfde naam hebben, wordt de tweede hernoemd met een achtervoegsel. Zo worden a, a de sleutels a en a_2.

De converter volgt de CSV-regels die zijn vastgelegd in RFC 4180, de technische standaard voor deze indeling. Een komma in een veld wordt alleen als een waarde binnen dat veld behandeld en niet als een kolomscheiding, wanneer het veld tussen dubbele aanhalingstekens staat, bijvoorbeeld "Smith, John". Een regeleinde tussen aanhalingstekens blijft onderdeel van de waarde en wordt niet als een nieuwe rij behandeld. Twee dubbele aanhalingstekens binnen een veld tussen aanhalingstekens stellen één letterlijk aanhalingsteken voor.

Alleen komma's worden als kolomscheiding herkend; het hulpmiddel detecteert of ondersteunt geen puntkomma's, tabs of andere scheidingstekens.

Elke waarde wordt gecontroleerd en naar een type geconverteerd:

  • Een waarde die als een gewoon getal is geschreven, zoals 42 of -3.5, wordt een JSON-getal.
  • De tekst true of false, ongeacht hoofdletters of kleine letters, wordt een JSON-booleaanse waarde.
  • Al het overige blijft een JSON-tekenreeks, inclusief lege cellen, die lege tekenreeksen worden.
  • Een getal met een voorloopnul, zoals 00512, blijft een tekenreeks, omdat de voorloopnul vaak betekenis heeft, bijvoorbeeld in een postcode of identificatienummer.
  • Een waarde wordt alleen als getal geaccepteerd als het opnieuw uitschrijven ervan exact dezelfde tekst oplevert. Lange gehele getallen boven 9,007,199,254,740,991, het grootste gehele getal dat een JavaScript-getal exact kan bevatten, falen die controle normaal gesproken en blijven tekenreeksen, zodat er geen cijfers verloren gaan.
  • Een waarde die in het bestand al tussen aanhalingstekens stond, blijft altijd een tekenreeks, zelfs als deze eruitziet als een getal, omdat aanhalingstekens worden opgevat als een aanduiding van de auteur dat het om tekst gaat.

Lege regels in het bestand worden overgeslagen en leveren geen lege objecten op.

Regels voor JSON-naar-CSV-conversie

De converter bekijkt elk object in de array en verzamelt de volledige reeks sleutels die in alle objecten wordt gebruikt. Deze sleutels worden de CSV-kolomkoppen, in de volgorde waarin ze voor het eerst worden gezien. Als het ene object een sleutel mist die een ander object wel heeft, blijft de bijbehorende cel leeg in plaats van dat er een fout optreedt.

JSON naar CSV maakt geneste objecten niet plat tot afzonderlijke kolommen. Een waarde die zelf een object of array is, wordt als JSON-tekst in één cel teruggeschreven. Zo wordt {"b": 1} de cel {"b":1} en wordt [1, 2] de cel [1,2]. Er gaat niets verloren, maar het geneste deel blijft in één kolom in plaats van te worden opgesplitst. Maak geneste JSON eerst handmatig plat als elk onderdeel een eigen kolom nodig heeft.

Een waarde null en een sleutel die het ene object wel heeft maar het andere niet, leveren beide een lege cel op.

Een celwaarde die een komma, aanhalingsteken of regeleinde bevat, wordt in de uitvoer tussen dubbele aanhalingstekens geplaatst. Elk aanhalingsteken daarin wordt verdubbeld, volgens de hierboven beschreven CSV-escaperegel.

De invoer-JSON moet een array zijn en elk item daarin moet een object zijn. Een getal, tekenreeks, null of geneste array op de plaats van een object levert de foutmelding "JSON must be an array of objects" op. Een array zonder items levert de foutmelding "The JSON array is empty. Add at least one object to convert." op. Een geüpload bestand zonder inhoud levert de foutmelding "The uploaded file is empty." op.

Uitgewerkt voorbeeld

Oorspronkelijk CSV-bestand:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

Conversie naar JSON levert op:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Merk op dat "Bo, Jr." zijn komma behield, omdat het veld in het bronbestand tussen aanhalingstekens stond, en dat Age en Member een getal en een booleaanse waarde werden.

Als dezelfde JSON weer naar CSV wordt geconverteerd, met een toegevoegde rij waarin Age ontbreekt, levert dat het volgende op:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

De ontbrekende waarde Age wordt een lege cel, en door de komma in "Bo, Jr." wordt het veld bij het uitschrijven opnieuw tussen aanhalingstekens geplaatst.

Veelvoorkomende toepassingen

  • Gegevensanalyse: een CSV-export uit een spreadsheet- of analysetool omzetten naar JSON zodat deze met JavaScript kan worden verwerkt, en de resultaten daarna weer naar CSV converteren voor een rapport.
  • API-testen: een ontwikkelaar die een API bouwt die CSV-uploads accepteert, kan voorbeeldbestanden naar JSON converteren om te controleren of een parser de verwachte objecten oplevert.
  • Gegevensmigratie: records verplaatsen van een systeem dat CSV exporteert naar een systeem dat alleen JSON accepteert, of andersom.
  • Snelle inspectie: een JSON-bestand omzetten naar tabelachtige CSV om het gemakkelijker te lezen, of andersom.

Programmeerbibliotheken bieden dezelfde conversie voor grotere of herhaalde taken, zoals de modules csv en json in Python, of pandas. Opdrachtregelprogramma's zoals csvkit en jq verwerken conversie en filtering vanuit een terminal. Die opties zijn geschikt voor batchverwerking; dit browserhulpmiddel is geschikt voor een eenmalig bestand zonder dat er iets hoeft te worden geïnstalleerd.

Veelgestelde vragen

Wordt het geüploade bestand naar een server verzonden? Nee. De conversie wordt in JavaScript in het browsertabblad uitgevoerd. Het bestand wordt van het lokale apparaat gelezen en nooit verzonden.

Ondersteunt de converter andere scheidingstekens dan een komma, zoals een puntkomma of tab? Nee. De huidige versie leest alleen door komma's gescheiden waarden. Een bestand met een ander scheidingsteken moet eerst worden omgezet naar een door komma's gescheiden vorm, bijvoorbeeld door het scheidingsteken in een teksteditor te vervangen.

Waarom bleef een getal zoals 00512 in de JSON-uitvoer een teksttekenreeks? Voorloopnullen hebben meestal betekenis, bijvoorbeeld in een postcode. Daarom houdt de converter deze waarde als tekenreeks in plaats van haar om te zetten in het getal 512, waardoor de nul verloren zou gaan.

Wat gebeurt er als ik JSON met geneste objecten converteer? Het geneste object wordt als JSON-tekst in één cel geschreven, bijvoorbeeld {"b":1}. De gegevens blijven behouden, maar worden niet over afzonderlijke kolommen verdeeld. Maak geneste gegevens eerst plat als elk veld een eigen kolom nodig heeft.

Wat als mijn JSON geen array met objecten is? Het hulpmiddel toont een foutmelding en converteert niets. De invoer moet een JSON-array zijn waarin elk item een object is, bijvoorbeeld [{"a":1},{"a":2}].

Moet de eerste rij van een CSV-bestand altijd een koptekstrij zijn? Ja. De converter behandelt de eerste rij altijd als kolomnamen. In een bestand zonder koptekstrij wordt de eerste gegevensrij verkeerd als kopteksten gelezen.

Referenties

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, oktober 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., red. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, december 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON