Pereiti prie turinio

CSV į JSON keitiklis - Nemokamas internetinis failų keitimo įrankis

Akimirksniu konvertuokite CSV į JSON ir JSON į CSV savo naršyklėje. Saugus, greitas duomenų konvertavimas su peržiūra ir atsisiuntimu. Nereikia įkelti failų.

CSV/JSON failų konverteris

Lengvai konvertuokite tarp CSV ir JSON formatų. Įkelkite savo failą, peržiūrėkite duomenis ir atsisiųskite konvertuotą rezultatą.

CSV į JSON konverteris

JSON į CSV konverteris

Įkrovimo skaičiuotuvas...
📚

Dokumentacija

Kas yra CSV į JSON konverteris?

CSV į JSON perskaičiuoklė yra įrankis, keičiantis duomenis iš CSV (kableliais atskirtų reikšmių) formato į JSON (JavaScript objektų notacijos) formatą arba atvirkščiai. Ši perskaičiuoklė veikia tik žiniatinklio naršyklėje. Įkeltas failas niekada nesiunčiamas į serverį, todėl duomenys lieka naudotojo įrenginyje.

CSV yra paprastojo teksto formatas, naudojamas lentelėms, pavyzdžiui, iš „Excel“ ar „Google Sheets“ eksportuotoms skaičiuoklėms, saugoti. JSON yra teksto formatas, sudarytas iš rakto ir reikšmės porų, plačiai naudojamas duomenims perduoti tarp žiniatinklio programų ir API. Kadangi šie du formatai duomenis tvarko skirtingai, norint juos konvertuoti reikia apibrėžto taisyklių rinkinio, aprašyto toliau.

Kaip konvertuoti CSV į JSON

  1. Spustelėkite „Įkelti CSV failą“ ir įrenginyje pasirinkite .csv failą.
  2. Įrankis rodo neapdoroto failo turinio peržiūrą.
  3. Spustelėkite „Konvertuoti į JSON“. Įrankis pirmąją eilutę laiko stulpelių antraštėmis, o kiekvieną kitą eilutę paverčia vienu JSON objektu.
  4. Rezultatas rodomas išvesties peržiūroje, suformatuotas naudojant įtraukas.
  5. Spustelėkite „Atsisiųsti JSON“, kad išsaugotumėte jį kaip .json failą, arba „Kopijuoti JSON“, kad nukopijuotumėte tekstą.

Kaip konvertuoti JSON į CSV

  1. Spustelėkite „Įkelti JSON failą“ ir pasirinkite .json failą. Faile turi būti JSON objektų masyvas, pavyzdžiui, [{"Name":"Ann"},{"Name":"Bo"}].
  2. Įrankis rodo neapdoroto JSON teksto peržiūrą.
  3. Spustelėkite „Konvertuoti į CSV“. Įrankis surenka visus raktus, naudojamus visuose objektuose, ir kiekvieną paverčia stulpeliu.
  4. Rezultatas rodomas išvesties peržiūroje kaip CSV tekstas.
  5. Spustelėkite „Atsisiųsti CSV“, kad išsaugotumėte jį kaip .csv failą, arba „Kopijuoti CSV“, kad nukopijuotumėte tekstą.

Serveris netaiko įkėlimo apribojimų, nes jokie duomenys nepalieka naršyklės. Vis dėlto labai didelis failas gali sulėtinti naršyklės kortelę, nes perskaičiuojant visas failas laikomas atmintyje.

CSV konvertavimo į JSON taisyklės

Perskaičiuoklė pirmąją failo eilutę laiko stulpelių pavadinimais. Kiekviena tolesnė eilutė tampa vienu JSON objektu, kuriame stulpelių pavadinimai yra raktai. Jei eilutėje reikšmių daugiau nei antraščių, papildomiems raktams suteikiami pavadinimai pagal jų absoliučią vietą eilutėje, todėl, esant 3 antraštėms, ketvirtoji reikšmė turi raktą field_4, penktoji – field_5 ir taip toliau, todėl jokie duomenys neprarandami. Jei reikšmių eilutėje mažiau, trūkstamiems raktams priskiriamos tuščios eilutės. Jei dvi antraštės turi tą patį pavadinimą, antroji pervadinama pridedant galūnę, todėl a, a tampa raktais a ir a_2.

Perskaičiuoklė laikosi CSV taisyklių, apibrėžtų RFC 4180, techniniame šio formato standarte. Kablelis lauke laikomas to lauko reikšmės dalimi, o ne stulpelių skirtuku, tik tada, kai laukas pateiktas dvigubose kabutėse, pavyzdžiui, "Smith, John". Eilučių lūžis kabutėse išlaikomas kaip reikšmės dalis, o ne laikomas nauja eilute. Dvi dvigubos kabutės kabutėmis apgaubtame lauke reiškia vieną tikrąjį kabutės simbolį.

Stulpelių skirtuku atpažįstami tik kableliai; įrankis neaptinka ir nepalaiko kabliataškių, tabuliacijos ženklų ar kitų skirtukų.

Kiekviena reikšmė patikrinama ir paverčiama į tam tikrą tipą:

  • Reikšmė, užrašyta kaip paprastas skaičius, pavyzdžiui, 42 arba -3.5, tampa JSON skaičiumi.
  • Tekstas true arba false, neatsižvelgiant į raidžių lygį, tampa JSON logine reikšme.
  • Visa kita lieka JSON eilute, įskaitant tuščius langelius, kurie tampa tuščiomis eilutėmis.
  • Skaičius su nuliu pradžioje, pavyzdžiui, 00512, lieka eilute, nes pradinis nulis dažnai turi reikšmę, kaip pašto kode ar identifikatoriaus numeryje.
  • Skaičius priimamas tik tada, kai jį išvedus gaunamas lygiai toks pats tekstas. Ilgi sveikieji skaičiai, didesni už 9,007,199,254,740,991, didžiausią sveikąjį skaičių, kurį JavaScript skaičius gali tiksliai saugoti, paprastai šio patikrinimo nepraeina ir lieka eilutėmis, todėl jokie skaitmenys neprarandami.
  • Reikšmė, kurią failas jau buvo apgaubęs kabutėmis, visada išlaikoma kaip eilutė, net jei atrodo kaip skaičius, nes kabutės laikomos autoriaus žyma, kad tai yra tekstas.

Tuščios failo eilutės praleidžiamos ir nesukuria tuščių objektų.

JSON konvertavimo į CSV taisyklės

Perskaičiuoklė peržiūri kiekvieną masyvo objektą ir surenka visą visuose objektuose naudojamų raktų rinkinį. Šie raktai tampa CSV stulpelių antraštėmis jų pirmojo aptikimo tvarka. Jei viename objekte trūksta rakto, kurį turi kitas objektas, jo langelis paliekamas tuščias, o ne pateikiama klaida.

JSON konvertavimas į CSV nesuploština įdėtų objektų į atskirus stulpelius. Reikšmė, kuri pati yra objektas arba masyvas, įrašoma kaip JSON tekstas viename langelyje, todėl {"b": 1} tampa langeliu {"b":1}, o [1, 2] tampa langeliu [1,2]. Niekas neprarandama, tačiau įdėta dalis lieka viename stulpelyje, o ne išskaidoma. Jei kiekvienai daliai reikia atskiro stulpelio, pirmiausia rankiniu būdu išskleiskite įdėtą JSON.

Reikšmė null ir raktas, kurį turi vienas objektas, bet kurio trūksta kitame, abu sukuria tuščią langelį.

Langelyje esanti reikšmė, kurioje yra kablelis, kabutės simbolis arba eilutės lūžis, išvestyje apgaubiama dvigubomis kabutėmis, o bet kuris joje esantis kabutės simbolis dubliuojamas, laikantis pirmiau aprašytos CSV specialiųjų simbolių pateikimo taisyklės.

Įvesties JSON turi būti masyvas, o kiekvienas jo elementas – objektas. Jei vietoje objekto pateikiamas skaičius, eilutė, null arba įdėtas masyvas, pateikiama klaida „JSON turi būti objektų masyvas“. Masyvas, kuriame visiškai nėra elementų, sukelia klaidą „JSON masyvas tuščias. Pridėkite bent vieną objektą, kurį norite konvertuoti.“ Visiškai tuščias įkeltas failas sukelia klaidą „Įkeltas failas tuščias.“

Išspręstas pavyzdys

Pradinis CSV failas:

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

Jį konvertavus į JSON gaunama:

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

Atkreipkite dėmesį, kad "Bo, Jr." išlaikė kablelį, nes pradiniame faile laukas buvo pateiktas kabutėse, o Age ir Member tapo skaičiumi ir logine reikšme.

Tą patį JSON dar kartą konvertavus į CSV ir pridėjus eilutę, kurioje trūksta Age, gaunama:

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

Trūkstama Age reikšmė tampa tuščiu langeliu, o dėl kablelio reikšmėje "Bo, Jr." laukas vėl apgaubiamas kabutėmis.

Dažniausi naudojimo atvejai

  • Duomenų analizė: skaičiuoklės ar analizės įrankio CSV eksportas paverčiamas į JSON, kad jį būtų galima apdoroti naudojant JavaScript, o tada rezultatai vėl konvertuojami į CSV ataskaitai.
  • API testavimas: kūrėjas, kuriantis API, priimančią CSV failus, gali konvertuoti pavyzdinius failus į JSON formatą ir patikrinti, ar analizatorius sukuria laukiamus objektus.
  • Duomenų perkėlimas: įrašų perkėlimas iš sistemos, eksportuojančios CSV, į sistemą, priimančią tik JSON, arba atvirkščiai.
  • Greita peržiūra: JSON failas paverčiamas į lentelę primenantį CSV, kad jį būtų lengviau perskaityti, arba atvirkščiai.

Programavimo bibliotekos siūlo tokį patį konvertavimą didesnėms ar pasikartojančioms užduotims, pavyzdžiui, csv ir json modulius Python kalboje arba pandas. Komandinės eilutės įrankiai, pavyzdžiui, csvkit ir jq, leidžia konvertuoti ir filtruoti duomenis terminale. Šios parinktys tinka paketiniam apdorojimui, o šis naršyklės įrankis – vienkartiniam failui be jokio diegimo.

Dažnai užduodami klausimai

Ar įkeltas failas siunčiamas į serverį? Ne. Perskaičiavimas vykdomas JavaScript kodu naršyklės kortelėje. Failas nuskaitomas iš vietinio įrenginio ir niekur neperduodamas.

Ar konverteris palaiko kitus skirtukus nei kablelis, pavyzdžiui, kabliataškį arba tabuliaciją? Ne. Dabartinė versija skaito tik kableliais atskirtas reikšmes. Failą, kuriame naudojamas kitas skyriklis, pirmiausia reikia konvertuoti į kableliais atskirtų reikšmių formatą, pavyzdžiui, pakeičiant skyriklį tekstų rengyklėje.

Kodėl toks skaičius kaip 00512 JSON išvestyje liko teksto eilute? Pradiniai nuliai paprastai turi reikšmę, kaip pašto kode, todėl perskaičiuoklė išlaiko šią reikšmę kaip eilutę, o ne paverčia ją skaičiumi 512, dėl kurio nulis būtų prarastas.

Kas nutinka, jei konvertuoju JSON, kuriame yra įdėtų objektų? Įdėtas objektas įrašomas kaip JSON tekstas viename langelyje, pavyzdžiui, {"b":1}. Duomenys išlieka, tačiau nėra išskaidomi į atskirus stulpelius. Jei kiekvienam laukui reikia atskiro stulpelio, pirmiausia suploštinkite įdėtus duomenis.

Kas nutiks, jei mano JSON nėra objektų masyvas? Įrankis parodo klaidą ir nieko nekonvertuoja. Įvestis turi būti JSON masyvas, kurio kiekvienas elementas yra objektas, pavyzdžiui, [{"a":1},{"a":2}].

Ar pirmoji CSV failo eilutė visada turi būti antraščių eilutė? Taip. Perskaičiuoklė pirmąją eilutę visada laiko stulpelių pavadinimais. Faile be antraščių pirmoji duomenų eilutė bus klaidingai palaikyta antraštėmis.

Šaltiniai

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, 2005 m. spalis. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., red. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, 2017 m. gruodis. 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