Tsara, tabbatar da rage girman JSON kai tsaye a burauzarka
JSON, wato JavaScript Object Notation, shi ne yaren gama-gari na yanar gizo ta zamani. Kusan kowace REST API da ka kira takan mayar da martani da JSON, mafi yawan fayilolin saiti suna dogaro da shi, kuma babban gutsuren bayanan da ke gudana tsakanin sabis da fuskokin gaba ana rubuta su ne a matsayin JSON. Yana da farin jini saboda dalili mai kyau: tsarin yana da sauki, ba ya danganta da wani harshe, kuma yana daidaita kai tsaye da abubuwa (objects), jerin abubuwa (arrays), kalmomi, da lambobi da masu shirye-shirye suka riga suka saba tunani da su. Amma wannan taƙaitawar tana da illarta. Da zarar sabar ta ba ka amsa ɗaya-layi cike da ɗaruruwan maɓallai masu jero, tsarin da ya sa JSON ya zama abin so yana ɓacewa cikin katanga ta haruffa.
Na'urar Tsara JSON ta speedor.net ta wanzu ne domin dawo da wannan tsari. Manna bayananka, sai ta tsara shi da kyawawan tazara, ta tabbatar da shi, kuma ta rage girmansa nan take, duk a cikin taɓin burauzarka. Babu wani abu da ake tura wa wata sabar, wanda yake da matukar muhimmanci idan bayanan da kake dubawa amsa ce ta API ɗauke da alamun shaida (tokens), bayanan abokan ciniki, ko lambobin ganewa na cikin gida.

Me ya sa tazara take mayar da JSON ya zama mai karantuwa
Tsarawa, wanda ake kira kuma "beautifying" ko "pretty-printing," yana ɗaukar JSON ɗin da aka taƙaita ko rage girmansa sannan ya ƙara layuka da tazara mai daidaito. Bayanin ba ya canzawa; sarari kaɗai ne yake canzawa. Duk da haka, wannan sararin ne yake ba idonka damar bin zurfin jeri, gano inda wani abu (object) ya ƙare aka fara na gaba, da bambanta jerin abubuwa uku da jerin abubuwa ɗari uku. Idan kana bincike matsala ta haɗin kai da misalin karfe biyu na dare, bambanci tsakanin itace mai karantuwa da layi mara katsewa shi ne bambanci tsakanin gano matsalar da rashin ganinta.
Kayan aiki mai kyau na tsarawa yana kuma kiyaye tsarin maɓallai da ainihin ƙimomin ba tare da canzawa ba, don haka abin da kake karantawa shi ne ainihin abin da API ta aiko. Ba wani sabon zane ne kake kallo ba; kana kallon ainihin bayanan, an shirya su ne kawai domin mutum ya iya fahimtarsu cikin sauƙi kamar yadda injin yake yi.
Tabbatarwa da kurakuran da ke ɓata wa kowa rai
Kawata bayani rabin aiki ne kawai. Kafin a tsara JSON, dole ne ya zama ingantacce, kuma tsauraran ka'idojin tsarin suna kama kurakurai fiye da yadda mutane suke tsammani. Na'urar tabbatarwa tana nazarin bayananka sannan ta gaya maka ainihin inda ya karye, yawanci tana nuna layi da matsayi domin kada ka nemi kuskure a boye. Kurakurai kaɗan da ke ƙasa su ne sanadin mafi yawan JSON ɗin da ya lalace:
- Wasu-wasu masu wuce gona da iri. JSON ba ta yarda da waƙafi bayan sashi na ƙarshe na wani abu ko jeri ba. JavaScript tana yarda da hakan, wanda shi ne dalilin da ya sa masu shirye-shirye suke mannawa da hakan cikin saba.
- Alamomin faɗi guda. Kalmomi da maɓallai dole ne su yi amfani da alamomin faɗi biyu. Ɗaukar wani abu (object literal) kai tsaye daga lambar tushe (source code) sau da yawa yana barin alamomin faɗi guda a baya, kuma na'urar nazari (parser) tana ƙin karɓarsa.
- Maɓallai marasa alamomin faɗi. Kowane maɓalli dole ne ya zama kalma mai alamomin faɗi. Maɓallai marasa alama, irin waɗanda ke aiki lafiya a cikin wani abu na JavaScript, ba su da inganci a JSON.
- Rasa ko rashin daidaituwar baka. Baka
{ko[da ba a rufe ba, ko wata baka mai rufewa da ta ɓace, tana ɓata dukkan takarda. Na'urar tsarawa tana nuna inda daidaiton ya karye. - Bayanan bayani (comments) da ƙimomi marasa ma'ana (undefined). JSON ba ta da bayanan bayani kuma ba ta da
undefined; kawainull, gaskiya/ƙarya (booleans), lambobi, kalmomi, jeri, da abubuwa ne aka yarda da su.
Sanya bayanin da ake zargi ta na'urar tabbatarwa tukuna, sai waɗannan matsalolin su bayyana cikin daƙiƙu maimakon bayan sarkar gazawar shigarwa mai rikitarwa.

Rage girma domin ƙaramar nauyin bayanai
Akasin aikin yana da amfani daidai gwargwado. Rage girma yana cire kowace sifa ta sarari da za a iya rashinta, yana mayar da JSON ɗinka zuwa mafi taƙaitaccen tsari na layi ɗaya. Wannan shi ne ainihin abin da kake so idan bayanan za su tafi ta hanyar sadarwa ko cikin ƙimar shiri, saboda ƙananan nauyin bayanai na nufin ƙarancin amfani da hanyar sadarwa da saurin canjawa. Tsarin aiki na gama-gari shi ne ka kawata amsa yayin nazarinta, ka gyara duk wata matsala, sannan ka rage girman sakamakon kafin ka aikata shi ko ka manna shi cikin wata muhallin canji. Kayan aiki guda ɗaya yana kula da bangarorin biyu na wannan zagayowar.
Sarrafawa na gida yana kiyaye bayanai masu mahimmanci a asirce
Domin kowane mataki yana gudana cikin JavaScript a cikin burauzarka, JSON ɗin da ka manna ba ya taɓa barin injinka. Wannan ba wani abu ba ne na talla kawai, tabbaci ne mai amfani. Za ka iya mannawa amsar API cike da alamomin shaida, fitowar bayanan mai amfani, ko tsarin sabis na cikin gida ba tare da damuwar cewa wata sabar ta ɓangare na uku tana ɗaukar bayaninta ba. Rufe taɓin sai bayanan su ɓace. Ga duk wanda ke aiki a ƙarƙashin ka'idojin sarrafa bayanai, sarrafawa ta gida kawai tana kawar da dukkan wani nau'i na haɗari.
Da zarar JSON ɗinka ya tsarkake, kana iya ci gaba da wani abu. Bincika sauran kayan aikin mai haɓakawa, canza tsari da JSON zuwa YAML, ko fassara ƙima da aka saka a ciki ta amfani da Base64. Kowane kayan aiki yana bin ka'ida ɗaya: sauri, kyauta, kuma ana sarrafa shi gaba ɗaya a cikin burauzarka.
Tambayoyin da ake yawan yi
Shin ana tura JSON ɗina zuwa wata sabar?
A'a. Na'urar tsarawa tana gudana gaba ɗaya a cikin burauzarka ta amfani da JavaScript. Ba a taɓa tura bayananka zuwa ko'ina ba, don haka za ka iya mannawa amsoshin API masu mahimmanci ko fayilolin saiti cikin natsuwa.
Menene bambanci tsakanin tsarawa da rage girma?
Tsarawa tana ƙara tazara da layuka domin mayar da JSON mai karantuwa. Rage girma yana cire duk wani sarari da za a iya rashinta domin bayanan su zama ƙanana gwargwadon iko. Bayanan da kansu iri ɗaya ne a duka tsari biyu.
Me ya sa JSON ɗina ke kasa tabbatuwa?
Sanadin gama-gari sun haɗa da wasu-wasu na wuce gona da iri, alamomin faɗi guda maimakon biyu, maɓallai marasa alama, bayanan bayani, da rasa ko rashin daidaituwar baka. Na'urar tabbatarwa tana nuna layin da matsalar ta faru.
Zan iya amfani da alamomin faɗi guda a JSON?
A'a. Ƙa'idar JSON tana buƙatar alamomin faɗi biyu ga dukkan kalmomi da maɓallai. Alamomin faɗi guda suna aiki a JavaScript amma ba a JSON ba, wanda shi ne sanadin kurakurai akai-akai.
Shin kayan aikin yana canza bayanaina yayin tsara su?
A'a. Tsarawa tana ƙarawa ko cirewa sarari kawai. Maɓallai, ƙimomi, da tsarin su suna zama daidai yadda suke, don haka abin da kake karantawa shi ne ainihin abin da API ta aiko.
Akwai iyakar girma?
Domin sarrafawa tana faruwa a gida, iyakar aiki tana dogara ne da na'urarka da burauzarka maimakon iyakar sabar. Amsoshin API na yau da kullum da fayilolin saiti suna tsarawa nan take.
