CSV-st JSON-iks muundaja - Tasuta veebipõhine failiteisendamise tööriist
Teisendage CSV JSON-iks ja JSON CSV-ks koheselt oma brauseris. Turvaline, kiire andmete teisendamine eelvaate ja allalaadimisega. Üleslaadimist pole vaja.
CSV/JSON faili teisendaja
Teisendage CSV ja JSON formaate lihtsalt. Laadige fail üles, eelvaadake andmeid ja laadige teisendatud tulemus alla.
CSV to JSON teisendaja
JSON to CSV teisendaja
Dokumentatsioon
Mis on CSV-st JSON-iks teisendaja?
CSV-st JSON-iks teisendaja on tööriist, mis muudab andmed CSV-vormingust (komadega eraldatud väärtused) JSON-vormingusse (JavaScripti objektimärgistus) või vastupidi. See teisendaja töötab täielikult veebibrauseris. Üles laaditud faili ei saadeta kunagi serverisse, seega jäävad andmed kasutaja seadmesse.
CSV on lihttekstivorming tabelite, näiteks Excelist või Google Sheetsist eksporditud arvutustabelite salvestamiseks. JSON on võtme-väärtuse paaridest koosnev tekstivorming, mida kasutatakse laialdaselt andmete edastamiseks veebirakenduste ja API-de vahel. Kuna need kaks vormingut korraldavad andmeid erinevalt, on nende vahel teisendamiseks vaja kindlaksmääratud reegleid, mida kirjeldatakse allpool.
Kuidas teisendada CSV JSON-iks
- Klõpsake „Upload CSV File“ ja valige seadmest
.csv-fail. - Tööriist kuvab faili toorsisu eelvaate.
- Klõpsake „Convert to JSON“. Tööriist loeb esimese rea veerupäistena ja muudab kõik ülejäänud read üheks JSON-objektiks.
- Tulemus kuvatakse täpse taandevorminguga väljundi eelvaates.
- Klõpsake „Download JSON“, et salvestada see
.json-failina, või „Copy JSON“, et tekst kopeerida.
Kuidas teisendada JSON CSV-ks
- Klõpsake „Upload JSON File“ ja valige
.json-fail. Fail peab sisaldama objektidest koosnevat JSON-massiivi, näiteks[{"Name":"Ann"},{"Name":"Bo"}]. - Tööriist kuvab töötlemata JSON-teksti eelvaate.
- Klõpsake „Convert to CSV“. Tööriist kogub kokku kõikides objektides kasutatud võtmed ja muudab iga võtme üheks veeruks.
- Tulemus kuvatakse väljundi eelvaates CSV-tekstina.
- Klõpsake „Download CSV“, et salvestada see
.csv-failina, või „Copy CSV“, et tekst kopeerida.
Server ei kehtesta üleslaadimise piiranguid, sest ükski andmetest ei lahku brauserist. Väga suur fail võib siiski brauseri vahekaarti aeglustada, kuna kogu faili hoitakse teisendamise ajal mälus.
CSV JSON-iks teisendamise reeglid
Teisendaja loeb faili esimese rea veerunimedena. Igast järgnevast reast saab üks JSON-objekt, mille võtmeteks on veerunimed. Kui real on päistest rohkem väärtusi, saavad ülejäänud väärtused võtmed nende absoluutse asukoha järgi real: näiteks 3 päise korral saab neljas väärtus võtme field_4, viies field_5 ja nii edasi, mistõttu andmeid ei kaotata. Kui real on vähem väärtusi, saavad puuduvad võtmed tühjad stringid. Kui kahel päisel on sama nimi, nimetatakse teine ümber järelliitega, nii et a, a muutub võtmeteks a ja a_2.
Teisendaja järgib RFC 4180 määratletud CSV-reegleid, mis on selle vormingu tehniline standard. Komat väljal käsitletakse selle välja väärtusena, mitte veerueraldajana, ainult siis, kui väli on ümbritsetud jutumärkidega, näiteks "Smith, John". Jutumärkide sees olev reavahetus säilitatakse väärtuse osana, mitte ei käsitleta uue reana. Kaks jutumärki jutumärkidega ümbritsetud väljal tähistavad üht sõnasõnalist jutumärki.
Veerueraldajana tuvastatakse ainult komasid; tööriist ei tuvasta ega toeta semikooloneid, tabeldusmärke ega muid eraldajaid.
Iga väärtus kontrollitakse ja teisendatakse tüübiks:
- Väärtusest, mis on kirjutatud tavalise arvuna, näiteks
42või-3.5, saab JSON-arv. - Tekst
truevõifalse(mis tahes tähesuuruses) muutub JSON-i tõeväärtuseks. - Kõik muu jääb JSON-stringiks, sealhulgas tühjad lahtrid, millest saavad tühjad stringid.
- Eesnulliga arv, näiteks
00512, jääb stringiks, sest eesnullil on sageli tähendus, näiteks sihtnumbris või ID-numbris. - Arv aktsepteeritakse ainult siis, kui selle uuesti tekstina kirjutamisel saadakse täpselt sama tekst. Pikad täisarvud, mis on suuremad kui 9,007,199,254,740,991, suurim täisarv, mida JavaScripti arv täpselt talletab, läbivad selle kontrolli tavaliselt negatiivselt ja jäävad stringideks, nii et ükski number ei lähe kaotsi.
- Failis juba jutumärkidega ümbritsetud väärtus säilitatakse alati stringina, isegi kui see näeb välja nagu arv, sest jutumärke käsitletakse autori märkusena, et tegemist on tekstiga.
Failis olevad tühjad read jäetakse vahele ega tekita tühje objekte.
JSON-i CSV-ks teisendamise reeglid
Teisendaja vaatab läbi kõik massiivi objektid ja kogub kõigis neis kasutatud võtmete täieliku hulga. Nendest võtmetest saavad CSV veerupäised nende esmakordse esinemise järjekorras. Kui ühel objektil puudub võti, mis teisel objektil olemas on, jäetakse selle lahter tühjaks, mitte ei teki viga.
JSON-i CSV-ks teisendamisel ei jaotata pesastatud objekte eraldi veergudesse. Väärtus, mis on ise objekt või massiiv, kirjutatakse ühe lahtri sisse tagasi JSON-tekstina, nii et {"b": 1} muutub lahtriks {"b":1} ja [1, 2] muutub lahtriks [1,2]. Midagi ei lähe kaotsi, kuid pesastatud osa jääb ühte veergu, selle asemel et jaguneda. Kui iga osa vajab oma veergu, tuleb pesastatud JSON enne käsitsi tasandada.
Väärtus null ja võti, mis on ühel objektil olemas, kuid teisel puudub, annavad mõlemad tulemuseks tühja lahtri.
Komat, jutumärki või reavahetust sisaldav lahtriväärtus ümbritsetakse väljundis jutumärkidega ning kõik selles olevad jutumärgid kahekordistatakse, järgides eespool kirjeldatud CSV paotamisreeglit.
Sisend-JSON peab olema massiiv ja iga selle element peab olema objekt. Objekti asemel olev arv, string, null või pesastatud massiiv tekitab vea „JSON must be an array of objects“. Ühtegi elementi mittesisaldav massiiv tekitab vea „The JSON array is empty. Add at least one object to convert.“. Täiesti sisutühi üleslaaditud fail tekitab vea „The uploaded file is empty.“.
Näidisarvutus
Algne CSV-fail:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Selle JSON-iks teisendamisel saadakse:
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]
13Pange tähele, et "Bo, Jr." säilitas oma koma, sest väli oli lähtefailis jutumärkides, ning Age ja Member muutusid vastavalt arvuks ja tõeväärtuseks.
Sama JSON-i tagasi CSV-ks teisendamisel, kui lisada rida, milles Age puudub, saadakse:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5Puuduv Age väärtus muutub tühjaks lahtriks ning komal "Bo, Jr." korral ümbritsetakse väli väljundis taas jutumärkidega.
Levinud kasutusalad
- Andmeanalüüs: arvutustabeli- või analüütikatööriistast eksporditud CSV teisendamine JSON-iks, et seda saaks JavaScriptiga töödelda, ning tulemuste seejärel CSV-ks teisendamine raporti jaoks.
- API testimine: CSV-üleslaadimisi vastu võtvat API-t loov arendaja saab näidisfailid JSON-iks teisendada, et kontrollida, kas parser koostab oodatud objektid.
- Andmete migreerimine: kirjete teisaldamine süsteemist, mis ekspordib CSV-d, süsteemi, mis aktsepteerib ainult JSON-i, või vastupidi.
- Kiire ülevaatus: JSON-faili muutmine tabelilaadseks CSV-ks, et seda oleks lihtsam lugeda, või vastupidi.
Programmeerimisteegid pakuvad sama teisendust suuremate või korduvate tööde jaoks, näiteks Pythoni moodulid csv ja json või pandas. Käsureatööriistad, näiteks csvkit ja jq, võimaldavad terminalist teisendada ja filtreerida. Need valikud sobivad partiitöötluseks; see brauseritööriist sobib ühekordse faili jaoks, ilma et oleks vaja midagi installida.
Korduma kippuvad küsimused
Kas üleslaaditud fail saadetakse serverisse? Ei. Teisendus käivitatakse JavaScriptis brauseri vahekaardi sees. Fail loetakse kohalikust seadmest ja seda ei edastata kunagi.
Kas teisendaja toetab peale koma ka muid eraldajaid, näiteks semikoolonit või tabeldusmärki? Ei. Praegune versioon loeb ainult komadega eraldatud väärtusi. Muud eraldajat kasutav fail tuleb kõigepealt komadega eraldatud kujule teisendada, näiteks asendades tekstiredaktoris eraldaja.
Miks jäi selline arv nagu 00512 JSON-väljundis tekstistringiks?
Eesnullidel on tavaliselt tähendus, näiteks sihtnumbris, seega säilitab teisendaja selle väärtuse stringina, selle asemel et muuta selle arvuks 512, millega null kaoks.
Mis juhtub, kui teisendan pesastatud objekte sisaldava JSON-i?
Pesastatud objekt kirjutatakse ühe lahtri sisse JSON-tekstina, näiteks {"b":1}. Andmed säilivad, kuid neid ei jaotata eraldi veergudesse. Kui iga väli vajab oma veergu, tuleb pesastatud andmed enne tasandada.
Mis siis, kui minu JSON ei ole objektide massiiv?
Tööriist kuvab vea ega teisenda midagi. Sisend peab olema JSON-massiiv, milles iga element on objekt, näiteks [{"a":1},{"a":2}].
Kas CSV-faili esimene rida peab alati olema päiserida? Jah. Teisendaja käsitleb esimest rida alati veerunimedena. Päiseta faili korral loetakse esimene andmerida ekslikult päisteks.
Viited
- Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, oktoober 2005. https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., toim. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, detsember 2017. https://www.rfc-editor.org/rfc/rfc8259
- "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON