Command Palette

Search for a command to run...

JSON naar CSV: zet een API-reactie in een spreadsheet die mensen kunnen openen

JSON naar CSV: zet een API-reactie in een spreadsheet die mensen kunnen openen

T
Toolz Team
|Aug 23, 2026|13 min lezen

Onderdeel van de collectie Datatools

De helft van mijn werk op elk SaaS-product is het verkrijgen van gegevens uit het systeem en in de handen van iemand die geen code schrijft Een oprichter wil de maand' s aanmeldingen in een spreadsheet Een support lead wil tickets sorteren in Excel Een accountant wil de bestellingen als een .csv ze kunnen draaien De data leeft als JSON, want dat is wat de API teruggeeft, en elke keer is de taak hetzelfde: verander deze reeks objecten in kolommen en rijen die een mens kan openen Ik werd het beu om er wegwerpscripts voor te schrijven, en dat is precies de reden waarom de Toolz JSON naar CSV converter bestaat Deze gids is hoe ik over die conversie denk, inclusief de onderdelen die mensen laten struikelen.

tl;dr: Een JSON naar CSV converter neemt een array van objecten en schrijft het als komma-gescheiden rijen, één kolom per eigenschap, zodat een spreadsheet het kan openen De harde delen zijn records met verschillende velden, geneste objecten, en waarden die komma's bevatten Een goede converter bouwt de header uit de vereniging van alle toetsen, kan geneste objecten platter maken in punt-notatie kolommen, en ontsnapt uit velden per RFC 4180 De Toolz tool doet alle drie client-side, en laat je de scheidingsteken en CRLF lijnuiteinden kiezen zodat het bestand schoon opent in Excel.

Ik bouw voort op Laravel en React, dus JSON is mijn eigen formaat en CSV is de lingua franca waarnaar ik exporteer De interessante engineering is niet het gelukkige pad waarbij elk object dezelfde drie sleutels heeft; het is de rommelige realiteit van productiegegevens, en dat is waar de meeste converters stilletjes het verkeerde doen.

Wat is een JSON naar CSV converter?

Een JSON naar CSV converter leest een JSON array van objecten en produceert een tabel: de eigenschapsnamen worden de koprij, en elk object wordt één gegevensrij eronder Plak het antwoord van een API eindpunt, een database query, of een geëxporteerd document, en je krijgt een bestand dat je direct kunt openen in Excel, Google Spreadsheets, of Numbers Het is de brug tussen de formaat machines uitwisseling en het formaat waarin mensen daadwerkelijk werken.

De ideale invoer is een array van platte objecten die allemaal dezelfde sleutels delen, omdat dat perfect op een rechthoekige tabel wordt afgebeeld Echte gegevens zijn zelden zo netjes Objecten missen een veld, waarden nestelen twee niveaus diep, en sommige vermeldingen zijn arrays in plaats van scalairen De hele waarde van een speciale converter is dat het een gedefinieerd, verstandig antwoord heeft voor elk van die gevallen in plaats van een fout te gooien of gegevens te laten vallen Als uw JSON is geminifieerd of u wilt het gewoon eerst inspecteren, voert u het door de JSON-formatter om het mooi af te drukken en te valideren voordat u converteert.

Hoe gaat het om met objecten met verschillende velden?

Dit is het eerste dat naïeve converters breekt, en het is de moeite waard om te begrijpen, want productie JSON heeft bijna nooit uniforme objecten Stel dat je array één object heeft met id, name, en email, en de volgende met id, name, en phone. Welke kolommen moet de CSV hebben?

Het juiste antwoord is de vereniging van elke sleutel over alle objecten, gehouden in de volgorde waarin elke sleutel voor het eerst verschijnt Dus de header wordt id, name, email, phone, en elk object dat een van die toetsen mist, krijgt gewoon een lege cel in die kolom. Er valt niets weg en de tafel blijft rechthoekig. Een luie converter die alleen de toetsen van het eerste object leest, zou stilletjes de phone kolom geheel, elk telefoonnummer meenemen De Toolz converter scant alle rijen om de header op te bouwen, dus ongelijke records staan nog steeds in een schone, complete tabel Dit ene gedrag is het verschil tussen een export die je kunt vertrouwen en een die stilletjes gegevens weglaat die niemand opmerkt totdat het te laat is.

Hoe zit het met geneste objecten en arrays?

JSON is een boom; CSV is een raster Het platmaken van de een in de ander is de tweede plaats converters divergeren, en de juiste keuze hangt af van wat u van plan bent te doen met het bestand.

Voor geneste objecten heb je twee redelijke opties, en het gereedschap ondersteunt beide, met afvlakking aan wordt een geneste object uitgebreid tot puntnotatiekolommen, dus { "address": { "city": "Paris", "zip": "75001" } } wordt een address.city kolom en een address.zip kolom. Dat is wat je wilt als de geneste velden echte gegevens zijn die een persoon zal lezen en sorteren. Bij het afvlakken wordt het hele geneste object geschreven als een compacte JSON-string in een enkele cel, wat beter is als de structuur ondoorzichtig is en je het gewoon woordelijk hoeft te bewaren.

Arrays krijgen hun eigen keuze, omdat er niet één juiste manier is om een lijst in één cel te persen U kunt de array opslaan als JSON, behouden ["a","b"] intact, dus het gaat perfect heen en terug, of je kunt de elementen samenvoegen met een scheidingsteken om het meer voor mensen leesbare te krijgen a; b. Ik gebruik JSON wanneer het bestand door een programma zal worden teruggelezen en het join-formaat wanneer een persoon het publiek is en de leesbaarheid wint De onderstaande tabel vat de beslissingen samen.

Invoervorm Flatten ON Afvlakken
{"user":{"name":"Ada"}} column user.name = Ada column user = {"name":"Ada"}
{"tags":["x","y"]} (arrays als JSON) column tags = ["x","y"] column tags = ["x","y"]
{"tags":["x","y"]} (arrays samengevoegd) column tags = x; y column tags = x; y
object mist een sleutel lege cel in die kolom lege cel in die kolom

Waarom moeten komma's en citaten ontsnappen?

Dit is de regel die, genegeerd, een bestand oplevert dat er prima uitziet totdat iemand het opent en de kolommen helemaal fout zijn CSV gebruikt de komma om velden te scheiden, dus wat gebeurt er als een waarde een komma bevat? of een dubbele aanhalingstekens? of een regeleinde van een notitie met meerdere regels?

RFC 4180, het dichtst CSV bij een standaard, beantwoordt dit precies: elk veld met de scheidingsteken, een dubbele aanhalingstekens of een regeleinde moet in dubbele aanhalingstekens worden verpakt, en elke dubbele aanhalingstekens binnen dat veld moet worden verdubbeld Dus de waarde Baker, Smith & Co. is geschreven als "Baker, Smith & Co.", en She said "hi" HALD "She said ""hi""". De Toolz-converter past deze regels automatisch toe op elke cel. Daarom overleeft een adres, een prijs met een scheidingsteken voor duizenden of een commentaar in vrije tekst de reis naar een spreadsheet als één enkel, intact veld in plaats van te verbrijzelen in extra kolommen.

Hoe maak ik het bestand schoon geopend in Excel?

Je zou denken dat een CSV een CSV is, maar Excel op Windows is kieskeurig over één ding dat mensen betrapt: lijnuitgangen Dit goed krijgen is het verschil tussen een bestand dat perfect opent en een bestand waarin rijen samengevoegd of gesplitst lijken.

Excel op Windows verwacht dat elke rij eindigt met een wagenretour plus een lijnfeed, het CRLF-paar Als u het een bestand met Unix-stijl LF-lijnuitgangen overhandigt, kan het verkeerd lezen waar rijen breken, vooral wanneer een opgegeven veld zijn eigen nieuwe regel bevat Met de converter kunt u LF of CRLF kiezen, dus kies CRLF wanneer het publiek Excel op Windows en LF is voor de meeste andere tools en voor Google Spreadsheets, dat blij is met een van beide U kunt ook de scheidingsteken kiezen: komma is de standaard, maar puntkomma is gebruikelijk op Europese locaties waar de komma het decimale scheidingsteken is, en tabblad of pijp zijn handig wanneer uw gegevens zelf vol staan met komma's M2.

Is het veilig om gevoelige JSON online te converteren?

Ja, omdat niets ervan uw browser verlaat Elk onderdeel van de conversie, van het parseren van de JSON tot het ontsnappen van elk veld tot het aansluiten van de rijen, wordt uitgevoerd in JavaScript op uw eigen machine Er is geen upload en geen server, dus er wordt niets verzonden, gelogd of opgeslagen Open het netwerktabblad en klik op Converteren: u ziet geen verzoek uitgaan, en zodra de pagina is geladen werkt de tool met het internet verbroken.

Dit is niet een klein detail voor JSON specifiek, omdat JSON is wat API-reacties en interne systemen spreken De array die u converteert kan gebruikersrecords, bestelgegevens, toegangstokens of iets anders dat uw backend retourneert bevatten Een converter die uw payload naar een externe server verzendt, verandert een privéreactie in iemand anders' s logregel Door de werkclient-kant te doen, blijven de gegevens precies waar ze begonnen zijn. Het is de standaard voor elke tool op Toolz.dev, en als je wilt dat er meer argumenten zijn voor waarom die architectuur ertoe doet, heb ik het in de Toolz.dev uiteengezet gegevensprivacygids voor online tools.

Waar past dit in een echte pijplijn?

Op zichzelf is de converter één stap, maar het is meestal de laatste hop van een langere flow, en het koppelt op natuurlijke wijze met een handvol andere tools De meest voorkomende retour in mijn week is: JSON exporteren vanuit een API, bewerken of filteren, converteren naar CSV, en overhandigen aan iemand die in spreadsheets woont, Wanneer ze het terugsturen met wijzigingen, converteer ik de andere richting met de CSV naar JSON converter, die het bestand per RFC 4180 parseert en typen afleidt zodat ik weer schone objecten krijg De twee tools zijn opzettelijke spiegels van elkaar, daarom verknopen ze.

Voordat ik converteer, wil ik de gegevens vaak zien als een raster om de gezondheid te controleren, en de CSV-viewer geeft CSV weer als een sorteerbare tabel, zodat ik kan bevestigen dat de export er goed uitziet. En wanneer de bestemming helemaal geen spreadsheet is, maar een ander systeem dat XML spreekt, is de XML naar JSON-converter en zijn tegenhangers dekken dat been Omdat elk van deze lokaal draait, kun je ze zonder een enkele upload aan hetzelfde privébestand koppelen. Als je een set go-to-tools samenstelt voor dit soort gegevensruzie, mijn Handleiding voor webontwikkelaars behandelt hoe ik denk over het monteren van een.

Veelgestelde vragen

Hoe converteer ik JSON naar CSV? Open de JSON naar CSV converter, plak een JSON-array van objecten in het invoervak en klik op Converteren. De objecttoetsen worden de koprij en elk object wordt een gegevensrij, waarna u de CSV kunt kopiëren of downloaden als een .csv te openen bestand in Excel of Google Spreadsheets Alle verwerking gebeurt in uw browser, dus er wordt niets geüpload.

Welke JSON-structuur verwacht de converter? Een array van objecten is ideaal, waarbij elk object één rij wordt, ook wordt een enkel object geaccepteerd en wordt het een bestand met één rij Waarden die geen objecten zijn, worden onder een geplaatst value kolom zodat er niets verloren gaat, en de tool waarschuwt u wanneer dat gebeurt.

Hoe gaat het om met objecten met verschillende velden? De header is de vereniging van elke sleutel die gevonden wordt over alle objecten, bewaard in de volgorde waarin elke sleutel voor het eerst verschijnt Een object dat een van die sleutels mist krijgt gewoon een lege cel in die kolom, dus ongelijke records produceren nog steeds een schone, complete tabel zonder dat er gegevens zijn gevallen.

Hoe wordt omgegaan met geneste objecten en arrays? Met afvlakking breidt een genest object zich uit tot kolommen met puntnotatie, zoals address.city; met het uit wordt het object geschreven als een JSON-string in één cel Arrays kunnen worden opgeslagen als JSON om ze exact te bewaren, of worden samengevoegd met een separator voor een beter leesbare kolom U kiest per conversie.

Waarom zou ik CRLF-lijnuitgangen voor Excel gebruiken? Microsoft Excel op Windows verwacht aan het einde van elke rij carriage-return plus line-feed Kiezen voor CRLF voorkomt dat rijen worden samengevoegd of verkeerd worden gelezen wanneer u het bestand opent Voor de meeste andere tools en voor Google Spreadsheets werkt LF prima.

Worden komma's en aanhalingstekens binnen waarden correct ontsnapt? Ja. na RFC 4180 wordt elk veld met de scheidingsteken, een dubbele aanhalingstekens of een regeleinde in dubbele aanhalingstekens verpakt en worden interne aanhalingstekens verdubbeld. Hierdoor blijven adressen, beschrijvingen en andere vrije tekst één geldig veld in plaats van over kolommen te splitsen.

Is het veilig om gevoelige JSON te converteren? Ja. de conversie draait volledig in JavaScript in uw browser, geen enkel netwerkverzoek draagt uw gegevens, niets wordt gelogd of opgeslagen en het werkt offline zodra het is geladen. JSON met API-sleutels, gebruikersrecords of interne identificatiegegevens verlaat uw machine nooit.

Kan ik de CSV terug converteren naar JSON? Ja. de CSV naar JSON converter keert het proces om, parseert het door komma's gescheiden bestand terug naar een JSON-array van objecten met type-inferentie Met Round-tripping kunt u gegevens verplaatsen tussen spreadsheets en API's zonder deze met de hand te herschrijven.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!