§

Bandika CSV unayotaka kubadilisha kuwa JSON.

Kitenganishi
Safu ya kwanza ni kichwa
Kulazimisha aina
§

Output

json

Kubadilisha CSV kuwa JSON ni kazi ya kila siku katika kazi za data Afrika Mashariki: maudhui ya data kutoka sehemu kama data.go.ke au data portals za Uganda yanakuja kama CSV ambazo mfululizo unabadilisha kuwa JSON kwa uingizaji kwenye hifadhidata. Timu za fintech zinazojenga juu ya mifumo ya malipo kama M-Pesa mara nyingi hubadilisha orodha za miamala kutoka CSV (muundo wanaotarajiwa na wakaguzi) kuwa JSON (muundo anaousema API). Kibadilishaji hiki kinafanya ubadilishaji nchini kwenye kivinjari chako ili rekodi za kifedha, za afya, au nyingine hazifike kamwe kwa kibadilishaji kilichohifadhiwa.

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:

  1. Unabandika CSV kwenye sehemu ya ingizo na kubonyeza BADILISHA; zana inachambua maandishi na kutoa mfululizo wa JSON wa vitu kwenye sehemu ya matokeo.
  2. 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\n na \n, na inazalisha safu wima ya 2-D ya mifuatano kama uwakilishi wa kati.
  3. 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.
  4. Kitenganishi (koma, nuktamkato, kichupo, bomba, au utambuzi kiotomati) na kulazimisha aina (nambari / booleans / null) zote zinaweza kubadilishwa. Ukiwa na kulazimisha aina imewashwa, 30 inakuwa nambari 30 na true inakuwa boolean; ukiwa imezimwa, kila seli inabaki mfuatano.
  5. Matokeo yanaandikwa kwenye eneo la maandishi la kusomwa-tu kama maandishi yaliyopangwa ya JSON.stringify, na kiungo cha upakuaji kinajenga Blob na aina ya MIME ya application/json;charset=utf-8 ili 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 zilizonu­kuliwa ("Bob, Jr."), mstari mpya uliopachikwa, na nukuu zilizotoroka huchambuliwa hadi seli moja, si tatu — utekelezaji wa kawaida wa split(',') 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 zilizonu­kuliwa 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 yaliyonu­kuliwa 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.