← Dukan kayan aiki

Mai Canza CSV zuwa JSON

Canza CSV zuwa JSON da JSON zuwa CSV kai tsaye a bincikenka. Tsara layuka da kanun labarai da kyau, kula da filayen da ke da alamar rubutu da alamomin rabewa, ka ci gaba da bayanai a gida.

CSV da JSON: hanyoyi biyu na ɗauke da bayanai iri ɗaya

Yawancin bayanai masu tsari-teburi suna ƙarewa a ɗaya daga cikin tsare-tsare biyu. CSV ita ce harshen asalin spreadsheet: fayil na rubutu mai sauƙi inda kowace layi jere ce, kuma waƙafi (comma) ke raba ginshiƙai. JSON kuwa harshe ne na API da manhajoji: tsarin rubutu mai tsari da aka gina daga abubuwa (maɓalli da darajar su) da jerurruka (lissafi masu tsari). Suna bayyana bayani iri ɗaya ta siffofi daban-daban sosai, kuma wannan shi ne dalilin da ya sa mayar da su daga ɗaya zuwa ɗaya ke faruwa akai-akai. Wannan shafi yana yin wannan mayarwa a bangarori biyu, gaba ɗaya a cikin mai binciken ka.

CSV tana haske a duk inda grid ke jin dabi'a. Ka fitar da rahoto daga database, ka sauke jerin oda, ko ka ajiye takarda daga Excel ko Google Sheets, kuma kusan koyaushe kana samun CSV. Tana ɗan ƙarama, mai sauƙin karantawa ga mutum, kuma kowane kayan aikin bincike a duniya na iya buɗe ta. JSON tana haske a duk inda software ke magana da software. API na REST suna aikawa da karɓar ta, fayilolin daidaitawa (configuration) suna amfani da ita, kuma JavaScript tana karanta ta ba tare da wata laburare ta fassarawa ba. Idan kana bukatar ka ciyar da fitowar spreadsheet zuwa API ko ka ja martanin API zuwa spreadsheet, kana fassara ne tsakanin waɗannan duniyoyi biyu.

Tebur mai haske na layukan CSV yana canzawa zuwa abubuwan JSON masu hade-hade a kan bango mai duhun indigo
Tebur na CSV mai lebur yana naɗewa zuwa abubuwa da jerurruka na JSON masu hade-hade.

Yadda layuka da kanun jeri ke zama abubuwa

Tsarin ba shi da wahala kamar yadda ya bayyana. Layin farko na fayil na CSV yawanci shi ne layin kanun jeri (header row), kuma waɗannan sunayen kanun jeri suna zama maɓallan (keys) a JSON. Kowace layi mai zuwa tana zama abu ɗaya, inda kowace tanti ke haɗuwa da kanun jeri da ta dace da ita. Dukan fayil ɗin yana zama jerin waɗannan abubuwa. Don haka CSV mai ginshiƙai name,email,age yana zama lissafi kamar [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]. A ɗaya hanyar, JSON zuwa CSV tana karanta maɓallan abu na farko don gina layin kanun jeri, sannan ta rubuta layi ɗaya ga kowane abu. Tafiya ce mai tsafta kuma tabbatacciya matuƙar bayaninka na gaskiya tsari-teburi ne.

Matsalolin da ya kamata a sani

CSV tana bayyana mai sauƙi amma tana ɓoye wasu matsaloli masu kaifi. Mafi girma shi ne waƙafi a cikin tanti. Idan adireshi ya ƙunshi "Berlin, Germany", raba mara wayo bisa waƙafi zai kece wannan darajar guda ɗaya zuwa ginshiƙai biyu. Ma'aunin CSV yana magance wannan ta hanyar naɗe irin waɗannan tantin cikin alamun ƙididdiga biyu (double quotes), kuma ana ninka alamun ƙididdiga a cikin tantin da aka riga aka ƙididdige (""). Kyakkyawan mai mayarwa yana bin waɗannan dokoki don kada bayaninka ya canza wuri a shiru. Ka lura da mai raba (delimiter) shima: yawancin fitowa na Turai suna amfani da semicolon maimakon waƙafi, domin waƙafi a can shi ne alamar decimal. Tab da pipe suma suna bayyana.

Bambanci mai zurfi shi ne nau'ukan bayani (types). CSV ba ta da wani ra'ayi na nau'ukan bayani ko kaɗan. Komai rubutu ne, don haka lambar 42, ƙimar gaskiya true, da tantin komai duk suna kama da jerin haruffa ne kawai. JSON kuwa, ta bambanta lambobi, jerin haruffa, ƙimar gaskiya, null, da tsare-tsare masu hade-hade. Idan ka mayar da CSV zuwa JSON, dara-daroji suna zuwa a matsayin jerin haruffa sai dai idan an gaya wa kayan aikin ya fassara lambobi da ƙimar gaskiya. Mayar da JSON zuwa CSV yana da matsalar akasin haka: abubuwa da jerurruka masu hade-hade ba sa dacewa da kyau a cikin grid mai lebur, don haka galibi ana lebur da su ko a canza su zuwa jerin haruffa a cikin tanti guda ɗaya. Sanin wannan tun farko yana ceton ka daga rikicewa game da dalilin da ginshiƙi ke "bayyana ba daidai ba" daga baya.

Grid na spreadsheet yana canzawa zuwa itace mai haske na baka-bakan JSON a cyan da zinariya
Grid na spreadsheet yana canzawa zuwa itace mai reshe na baka-bakan JSON.

Tafiya ta gaskiya, zuwa da dawowa

Ga wani yanayi da ke faruwa akai-akai. Wani abokin aiki ya aiko maka spreadsheet na sabbin masu amfani ya nemi ka loda su ta wata API na ciki. API ɗin tana karɓar JSON kawai. Ka fitar da takardar zuwa CSV, ka manna a nan, kuma ka samu jerin abubuwa mai tsafta shirye don sanya cikin buƙatarka. Daga baya, API ɗin tana mayar da jerin JSON na bayanan da ta ƙirƙira, kuma kana bukatar ka miƙa hakan ga wannan abokin aikin don dubawa. Ka manna JSON ɗin, ka mayar da shi zuwa CSV, kuma yana buɗewa kai tsaye a spreadsheet ɗinsu. Babu scripts, babu shigarwa, sai fassarori biyu masu sauri a tsakiyar aiki na yau da kullum.

Na gida kawai, bisa tsari

Duk wannan yana gudana a mai binciken ka. CSV da JSON ɗinka ana fassara su kuma a mayar da su ta JavaScript a na'urarka, kuma babu abin da ake loda zuwa server. Wannan yana da muhimmanci domin fitarwa galibi tana ɗauke da sunaye na gaskiya, imel, bayanan oda, ko lambobin gano na ciki da bai kamata ka manna su a wani server na nesa mara sani ba. A nan bayanai ba sa taɓa barin shafin. Idan kana son tsaftace sakamakon daga baya, mai tsara JSON namu zai buga shi a kyau ya kuma tabbatar da shi, kuma za ka iya bincika sauran masu mayar da bayanai namu don tsare-tsare masu alaƙa.

Tambayoyin da ake yawan yi

Ana loda bayanaina zuwa wani wuri?

A'a. Mayarwar tana gudana gaba ɗaya a mai binciken ka ta amfani da JavaScript, don haka CSV da JSON ɗinka suna zama a na'urarka kuma ba a taɓa aika su zuwa server ba.

Mai mayarwar tana sarrafa waƙafi a cikin tantin?

Eh. Tantin da ke ɗauke da waƙafi ya kamata a naɗe su cikin alamun ƙididdiga biyu a CSV, kuma mai fassara yana bin waɗannan alamun don darajar ta ci gaba da zama a ginshiƙi guda ɗaya.

Me ya sa lambobina ke bayyana a matsayin rubutu a JSON?

CSV ba ta da nau'ukan bayani, don haka kowace tanti rubutu ne kawai. Dara-daroji suna zama jerin haruffa na JSON sai dai idan an yi amfani da fassarar lambobi da ƙimar gaskiya, domin fayil ɗin tushen ba ya ba da wata hanya ta bambance lamba da kalma.

Me ke faruwa da JSON mai hade-hade lokacin da na mayar zuwa CSV?

Grid mai lebur ba ta iya ɗauke da tsare-tsare masu hade-hade, don haka yawanci ana lebur da abubuwa da jerurruka masu hade-hade ko a rubuta su a matsayin darajar jerin haruffa guda ɗaya a cikin tanti guda.

Zan iya amfani da semicolon ko tab maimakon waƙafi?

Eh. Yawancin fitarwa, musamman na Turai, suna amfani da semicolon ko tab a matsayin mai raba, kuma kayan aikin yana iya karanta waɗannan maimakon waƙafi na daidaitacce.

Yana mayar da bangarori biyu?

Eh. Za ka iya mayar da CSV zuwa JSON da JSON zuwa CSV, wanda ke sanya tafiye-tafiye tsakanin spreadsheet da API su zama masu sauƙi.