Kas yra šis įrankis?
API ir duomenų bazės paprastai grąžina duomenis kaip JSON, tačiau skaičiuoklės, „Excel", „Google Sheets" ir dauguma duomenų importavimo įrankių tikisi CSV. Šis įrankis sujungia šį atotrūkį: įklijuokite JSON objektų masyvą (pavyzdžiui, API atsakymą), o jis sukuria CSV su vienu stulpeliu kiekvienam unikaliam raktui ir viena eilute kiekvienam objektui.
Konvertavimas apdoroja detales, kurios sugadina naiviuosius metodus: reikšmės, turinčios kablelius ar kabutes, tinkamai apsaugomos, trūkstami laukai tampa tuščiomis ląstelėmis vietoj konvertavimo sugadinimo, o įdėtiniai objektai ar masyvai lauke serializuojami kaip JSON eilutė toje ląstelėje, o ne tyliai atmetami.
Išvestis seka RFC 4180 citavimo taisykles, kurios yra faktinis CSV standartas: bet koks laukas, turintis kablelį, dvigubą kabutę ar eilutės lūžį, apvyniojamas dvigubomis kabutėmis, o kabutės lauko viduje dubliuojamos. Tai išlaiko reikšmę kaip New York, NY viename stulpelyje, o ne tyliai padalija į du.
Kodėl jį naudoti?
- Automatinis antraščių aptikimas – stulpelių sąrašas sukuriamas iš visų objektų raktų sąjungos, tad nenuoseklūs įrašai negadina išvesties.
- Teisinga CSV apsauga kabutėmis – reikšmės su kableliais, kabutėmis ar eilučių lūžiais tinkamai apsaugomos, tad failas atsidaro švariai „Excel" ar „Google Sheets".
- Apdoroja įdėtinius duomenis – objektas ar masyvas lauke serializuojamas į JSON tekstą, o ne sukelia klaidą.
- Kopijuoti į iškarpinę arba atsisiųsti kaip .csv failą tiesiogiai.
- 100% vietinis apdorojimas – jūsų duomenys (API atsakymai, eksportuoti įrašai) niekada niekur neįkeliami.
Kaip naudoti
- Įklijuokite JSON objektų masyvą, pvz., [{"name":"Alice","age":30},{"name":"Bob","age":25}].
- Spustelėkite „Konvertuoti į CSV".
- Peržiūrėkite išvestį – nukopijuokite ją arba spustelėkite „Atsisiųsti CSV", kad išsaugotumėte failą.
- Atidarykite atsisiųstą failą „Excel", „Google Sheets" ar bet kuriame skaičiuoklės įrankyje.
Pavyzdys
Įvestis
[{"name":"Alice","age":30},{"name":"Bob","city":"NYC"}]Išvestis
name,age,city
Alice,30,
Bob,,NYCAtkreipkite dėmesį, kaip „city" ir „age" abu tampa stulpeliais, nors nė vienas objektas neturi abiejų – trūkstamos reikšmės tiesiog paliekamos tuščios.
Praktiniai patarimai
- Konvertuojate API atsakymą skaičiuoklės ataskaitai: įklijuokite JSON masyvą tiesiai iš naršyklės Tinklo skirtuko ar API testavimo įrankio, konvertuokite ir atsisiųskite – jokio tarpinio scenarijaus nereikia.
- Dirbate su nenuosekliais įrašais (pvz., pasirenkamais laukais iš formos eksporto): automatinis antraščių aptikimas reiškia, kad jums nereikia pirma rankiniu būdu suderinti schemų.
- Jei jūsų JSON yra vienas didelis objektas su įdėtiniu masyvu (pvz., {"users": [...]}), prieš įklijuodami čia, ištraukite tik masyvo dalį ([...] dalį).
Kodėl svarbi stulpelių tvarka ir pilnumas
Subtilus, bet dažnas CSV klaida atsiranda, kai duomenys eksportuojami ranka rašant antraštes pirma ir tikintis, kad kiekviena eilutė atitiks: jei 50-a iš 1000 eilučių turi papildomą lauką, kurio neturėjo nė viena ankstesnė eilutė, naivus eilutė-po-eilutės CSV rašytojas arba tyliai atmeta tą lauką, arba pastumia kiekvieną vėlesnį stulpelį iš pusiausvyros. Šis įrankis vengia šio nesėkmės būdo pirma nuskaitydamas kiekvieną masyvo objektą, kad sukurtų pilną, teisingą antraštės eilutę prieš rašant vieną išvesties eilutę – tad laukas, kuris pasirodo tik kartą, pačiame paskutiniame objekte, vis tiek gauna savo stulpelį, o kiekvienos kitos eilutės reikšmė jam teisingai rodoma kaip tuščia, o ne sugadina eilutės struktūrą.
Dažniausiai užduodami klausimai
Ar tai veikia su vienu JSON objektu vietoj masyvo?
Tikimasi masyvo – apvyniokite vieną objektą laužtiniais skliaustais, pvz., pakeiskite {"name":"Alice"} į [{"name":"Alice"}], ir jis konvertuosis į vienos eilutės CSV.
Kas nutinka įdėtiniams objektams ar masyvams lauko viduje?
Jie serializuojami kaip JSON eilutė toje ląstelėje (pvz., laukas, turintis {"a":1}, tampa tekstu "{""a"":1}" CSV, tinkamai apsaugotu kabutėmis), o ne sukelia klaidą ar yra atmetamas. Jei jums reikia įdėtinius duomenis išskleisti į atskirus stulpelius, tam reikia kito, schemai specifinio įrankio.
Ar mano duomenys įkeliami į serverį?
Ne. Konvertavimas vyksta kaip „JavaScript" visiškai jūsų naršyklėje – niekas niekur nesiunčiama, todėl saugu naudoti su eksportuotais klientų ar verslo duomenimis.
Kodėl mano CSV yra tuščių ląstelių?
Jei kai kuriems masyvo objektams trūksta rakto, kurį turi kiti, tas stulpelis egzistuoja, tačiau ląstelė paliekama tuščia objektams, kurie jo neturi – tai išsaugo visus jūsų duomenis vietoj klaidos su nenuosekliais įrašais.
Ar reikšmės su kableliais sugadins CSV?
Ne. Bet kokia reikšmė, turinti kablelį, kabutės simbolį ar eilutės lūžį, automatiškai apvyniojama kabutėmis (su vidinėmis kabutėmis apsaugotomis) pagal standartines CSV taisykles, tad ji teisingai atsidaro „Excel" ir „Google Sheets".