Ubadilishaji wa CSV hadi JSON ni nini?
CSV (Thamani Zilizotengwa kwa Koma, RFC 4180) ni muundo wa maandishi tambarare wenye jedwali; JSON (JavaScript Object Notation, RFC 8259) ni muundo wa maandishi wenye umbo la mti kwa data iliyopangwa. Kubadilisha CSV kuwa JSON hubadilisha jedwali linalofaa kwa lahajedwali kuwa mkusanyiko wa vitu unaofaa kwa API — kitu kimoja kwa kila safu, na safu ya kichwa ikitoa funguo — bila kuandika upya seli yoyote.
Ubadilishaji wa CSV hadi JSON unafanya kazi vipi?
Kila ubadilishaji hufanyika nchini kwenye kivinjari chako. Hatua kuu ni:
- Unabandika CSV kwenye sehemu ya ingizo na kubonyeza BADILISHA; zana inachambua maandishi na kutoa mfululizo wa JSON wa vitu kwenye sehemu ya matokeo.
- Mashine ya hali ya tabia kwa tabia (FIELD_START → IN_UNQUOTED_FIELD au IN_QUOTED_FIELD) inapita ingizo, inakubali kutoroka kwa nukuu-nukuu ya
"", inatambua vifupisho vya safu vya\r\nna\n, na inazalisha safu wima ya 2-D ya mifuatano kama uwakilishi wa kati. - Ikiwa safu ya kwanza imewekwa alama kama kichwa, seli zake zinakuwa funguo za vitu; vinginevyo zana inazalisha funguo za bandia
field0,field1, … ili kila safu bado iorodheshwe kwa kitu kamili. - Kitenganishi (koma, nuktamkato, kichupo, bomba, au utambuzi kiotomati) na kulazimisha aina (nambari / booleans /
null) zote zinaweza kubadilishwa. Ukiwa na kulazimisha aina imewashwa,30inakuwa nambari 30 natrueinakuwa boolean; ukiwa imezimwa, kila seli inabaki mfuatano. - Matokeo yanaandikwa kwenye eneo la maandishi la kusomwa-tu kama maandishi yaliyopangwa ya
JSON.stringify, na kiungo cha upakuaji kinajengaBlobna aina ya MIME yaapplication/json;charset=utf-8ili uweze kuhifadhi matokeo kwa kubonyeza mara moja.
Kwa nini ubadilishe CSV kuwa JSON na zana hii?
- Faragha: kila upitio wa uchambuzi na ubadilishaji hufanyika kwenye kivinjari chako. Data haifikii seva zetu kamwe.
- Usahihi: mchanganuzi wa CSV ni mashine ya hali halisi. Sehemu zenye koma zilizonukuliwa (
"Bob, Jr."), mstari mpya uliopachikwa, na nukuu zilizotoroka huchambuliwa hadi seli moja, si tatu — utekelezaji wa kawaida wasplit(',')hupata hili vibaya. - Usahihi wa aina: kulazimisha aina kwa hiari hubadilisha seli za nambari na boolean kuwa nambari na boolean za kweli za JSON, ili mkusanyiko unaopata uko tayari kutumiwa moja kwa moja bila upitio mwingine wa usafi.
- Kubadilika: chagua kitenganishi chochote kwa lahaja za CSV zisizo za koma, chagua kama safu ya kwanza ni kichwa, na ubadilishe kulazimisha aina kwa hali ambapo kila seli lazima ibaki mfuatano.
Matumizi ya kawaida ya ubadilishaji wa CSV hadi JSON ni yapi?
Uchambuzi wa CSV kuwa JSON unaonekana katika kazi za data na zana:
- Kuiga API: kubandika kishindo cha CSV kilichosafirishwa kutoka kwa lahajedwali na kuibadilisha kuwa mfululizo wa JSON seva yako ya nchini inaweza kurudisha kama nukta ya mwisho iliyoigwa.
- Uingizaji wa data: kubadilisha maudhui ya lahajedwali (anwani, hesabu, majibu ya utafiti) kuwa mfululizo wa JSON ambao programu yako au hati inaweza kupita bila utegemezi wa mchanganuzi wa CSV.
- Uhariri wa usanidi: kuwaruhusu wakaguzi wasio wa kiufundi kuhariri mipangilio au bendera za kipengele seli kwa seli katika lahajedwali, kisha kubadilisha CSV iliyohifadhiwa kuwa JSON ambayo programu yako inabeba.
Mfano wa ubadilishaji wa CSV hadi JSON unaonekanaje?
Kubandika name,age kwenye mstari wa kwanza, Alice,30 kwenye mstari wa pili, na "Bob, Jr.",25 kwenye mstari wa tatu, kisha kubonyeza BADILISHA na kitenganishi cha koma, safu ya kwanza kama funguo, na kulazimisha aina imewashwa, kunazalisha [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] — koma iliyonukuliwa katika "Bob, Jr." inabaki ndani ya sehemu moja, na umri unakuwa nambari za kweli za JSON.
Je, kibadilishaji hiki cha CSV hadi JSON kinafanya kazi kabisa kwenye kivinjari changu?
Ndiyo. Kila upitio wa uchambuzi na ubadilishaji hufanyika nchini kama JavaScript ndani ya kichupo cha kivinjari chako. Zana haitumii fetch, XMLHttpRequest, au navigator.sendBeacon kabisa — mzigo wako wa CSV haaufiki seva zetu, kibadilishaji cha watu wengine, au mfululizo wowote wa uchambuzi. Zana pia inafanya kazi nje ya mtandao baada ya ukurasa kupakia, kwa sababu ni kifurushi cha statiki cha HTML/CSS/JS bila utegemezi wa API ya wakati wa utekelezaji.
Ukubwa wa juu zaidi wa ingizo ambao kibadilishaji hiki kinaweza kushughulikia ni upi?
Kibadilishaji kinaweka ingizo lote kwenye kumbukumbu na kinafanya kazi kwa usawa kwenye uzi mkuu, kwa hivyo mipaka ya vitendo inategemea kifaa chako. Maingizo hadi takriban 10 MB ya CSV (takriban safu 100,000 za kawaida) yanabadilishwa bila kusimama kinachoonekana kwenye kompyuta ya kisasa. Zaidi ya hapo UI inaweza kusimama wakati mchanganuzi anafanya kazi. Ubadilishaji wa utiririshaji ukitumia Web Worker pamoja na mchanganuzi wa vipande umepangwa — kwa sasa, gawanya seti kubwa za data kabla ya kuzibandika.
Mchanganuzi wa CSV hadi JSON unashughulikia koma zilizonukuliwa na mstari mpya uliopachikwa vipi?
Mchanganuzi ni mashine ya hali ya tabia kwa tabia yenye hali tatu (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD) — si split(',') ya kawaida. Sehemu iliyofungwa katika alama mbili za nukuu inaweza kuwa na kitenganishi, CR, LF, au alama mbili za nukuu halisi zilizotoroka kama "", zote bila kuvunja mipaka ya sehemu. Kwa hivyo "Bob, Jr.",25 huchambuliwa hadi sehemu mbili, si tatu, na maelezo ya mistari mingi yaliyonukuliwa kwenye safu huchambuliwa hadi seli moja.
Nambari, booleans, na seli tupu zinaandikwaje katika matokeo ya JSON?
Uandishi wa aina unashughulikiwa na kitufe cha Kulazimisha aina. Ukiwa na kulazimisha aina imewashwa (msingi), seli inayoonekana kama nambari inakuwa nambari ya JSON, true/false zinakuwa booleans, na null halisi inakuwa JSON null; kila kitu kingine kinabaki mfuatano. Ukiwa imezimwa, kila thamani inabaki mfuatano bila kujali yaliyomo — inafaa wakati sufuri zinazoongoza, nambari za simu, au misimbo ya kitambulisho lazima ibaki bila kubadilika. Seli zinazokosekana mwishoni mwa safu fupi zinatumwa kama mifuatano mitupu ili kila kitu kiwe na mkusanyiko kamili wa funguo.
Ni vitenganishi vipi upande wa CSV unavyosaidia?
Vitenganishi vinne wazi vinasaidiwa: koma (,, msingi wa RFC 4180), nuktamkato (;, ya kawaida katika maeneo ya Ulaya), kichupo (\t, lahaja ya TSV), na bomba (|). Unaweza pia kuchagua Tambua kiotomati, ambayo inahesabu matukio ya kila mgombea katika KB 4 za kwanza za ingizo nje ya maeneo yaliyonukuliwa na kuchagua ile inayoonekana mara nyingi zaidi inayotoa idadi thabiti ya safu katika safu tano za kwanza.
Kibadilishaji hiki cha CSV hadi JSON kinachambua na mashine ya hali halisi na kutoa JSON safi iliyoandaliwa unayoweza kuibandika moja kwa moja kwenye simu ya API, hati, au ukaguzi wa msimbo — bila kupakia byte moja.