← Wonke amathuluzi

Isiguquli se-JSON saya ku-XML

Guqula i-JSON ibe yi-XML ne-XML ibe yi-JSON ngokushesha kubrawuza yakho. Ngokwendawo kuphela futhi kuyimfihlo, namanothi mayelana namasixhumanisi, ama-array, amagama endawo neziphazamiso.

I-JSON ukuya ku-XML nokubuyela emuva: isiguquli esisebenzayo semhlaba wedatha emibili

Abaklami bezinhlelo abaningi basebenza ngokubili i-XML ne-JSON noma bafuna noma bangafuni. Ama-API ewebhu esimanje akhuluma i-JSON cishe kuphela, kodwa ngesikhathi uthinta ibhange, umshuwalensi, isikhungo sikahulumeni, i-ERP yenkampani enkulu, noma isevisi endala ye-SOAP, i-XML iyavela futhi. Isiguquli se-JSON ukuya ku-XML kuleli khasi siguqula i-JSON ibe i-XML kanye ne-XML ibuyele ibe i-JSON ngqo kusiphequluli sakho, ukuze ukwazi ukuhamba phakathi kwalawa mafomethi amabili ngaphandle kokukopisha imithwalo ebucayi kusevisi ekude.

Amabhukethi angacacile e-JSON afakwe ndawonye akhanyayo aguquka abe uhlaka lwamathegi e-XML akwakwe ngasemuva okumpunga okumnyama
Ama-objekthi e-JSON kanye nezihlahla zamathegi e-XML zichaza idatha efanayo ngezimo ezahlukene.

Yini ngempela i-XML ne-JSON

I-XML (Extensible Markup Language) yifomethi yokwakwa eyakhelwe emathegini afakwe ndawonye, izici (attributes), namagama endawo (namespaces). Yaklanywa amadokhumenti kanye nokuxhumana kwedatha eyakhiwe, futhi ithwala imishini eminingi: izinhlaka (XSD), amagama endawo, imiyalelo yokucubungula, amazwana, izigaba ze-CDATA, kanye nesimemezelo esisemthethweni phezulu. Leyo mfaneleko yisona sizathu sokuthi kungani i-XML isabusa ezinhlelweni zendulo nezenkampani enkulu. Uyithola ezinsizeni zewebhu ze-SOAP, ukukhishwa kwezindaba ze-RSS ne-Atom, amafayela okucushwa (Spring, Maven, ama-config e-.NET), amafomethi amadokhumenti ehhovisi, kanye nezimiso zomlayezo wezezimali njenge-SWIFT ne-ISO 20022, lapho amabhange nabashuwalensi belokhu beshintshisana i-XML usuku nosuku.

I-JSON (JavaScript Object Notation) ilula kakhulu: ama-objekthi anama-key/value, ama-array, imibhalo, izinombolo, ama-boolean, kanye ne-null. Ifanana cishe ngokuphelele nezakhiwo zedatha zecishe zonke izilimi zokuhlela, okuyisona sizathu sokuthi kungani yathatha izikhundla zama-API ewebhu esimanje, izindawo ze-REST, ama-app efoni, kanye namafayela okucushwa afana ne-package.json. I-JSON ivamise ukuba ncane ngamaphesenti angu-30 kuya ku-50 kuneJSON efanayo ye-XML futhi ihlaziywa ngokushesha okubonakalayo, kungenxa yokuthi ilahla amathegi okuvala nemishini yezici eyenza i-XML ibe nde.

Imehluko ebalulekile ekuguquleni

La mafomethi amabili afana ngokwanele ukuze afanele elinye, kodwa hhayi ngendlela ehlanzekile. Imehluko embalwa yesakhiwo iyona ebangela cishe konke ukuxabana:

  • Izici naphambene namandodana engani (child nodes). I-XML ihlukanisa phakathi kuka-<user id="1"> (isici) no-<user><id>1</id></user> (indodana engani). I-JSON ayinawo lowo mqondo, ngakho iziguquli zisungula elinye. Ngesiko izici zigoqwa ku-key efana ne-@attributes noma zibekwe ngaphambili nge-@, kanti umbhalo wesici uwela ku-key efana ne-#text.
  • Ama-array. I-JSON inama-array wemvelo. I-XML ayinawo. Uhlu ku-XML lithegi elifanayo eliphindwaphindwa, njengama-<item> amathathu alandelanayo. Iziguquli kufanele ziqagele lapho izelamani eziphindiwe kufanele zigoqe zibe i-array ye-JSON, nokuthi nini i-elementi eyodwa kufanele ihlale iyi-objekthi eyisicaba.
  • Amagama endawo (Namespaces). I-XML isebenzisa amagama endawo (i-xmlns:soap) ukugwema ukushayisana kwamagama phakathi kwezinhlaka. I-JSON ayinalutho olulinganayo, ngakho izici zangaphambili zisinda njengezinhlamvu ezicacile ku-key noma zisuswe.
  • Ubude nemininingwane engenhla. I-XML ingafaka imininingwane engenhla kwindodana ngezici; i-JSON ichaza yonke into njengama-key namavelu. Lokho kwenza i-JSON ibe mfushane kakhulu futhi kufundeke kalula, kanti i-XML igcina amandla okuqinisekisa nge-XSD.

Izinkinga zokuguqula okufanele uqaphele

Ukuguqula i-JSON ibe i-XML ibuyele ibe i-JSON futhi ulindele umphumela ofanayo ncamashi kuyisiphambeko esivamile. Ukuguqula kulahlekelwa okuthile kokubili izindlela ngaphandle kokuba wena ulawula imithetho. Khumbula lokhu:

  • Izici ziyadidwa. Uma uguqula i-JSON ibe i-XML, ithuluzi lidinga umthetho wokuthi ama-key aphi aba izici bese amanye aba yizindodana. Uma uhamba ngakolunye uhlangothi, izici kufanele ziyewele ndawana thize, futhi leyo "ndawana thize" (u-@ ngaphambili, ibhulokhi le-@attributes) ihlukile phakathi kwamathala emitapo. Uma uhlaziyi olandelayo ulindele isiko elihlukile, idatha ibukeka ingalungile nakuba akukho okulahlekile.
  • Elementi eyodwa naphambene ne-array. Ukukhishwa kwe-XML okune-<item> eyodwa kukhiqiza i-objekthi ye-JSON; ukukhishwa okufanayo okunezinto ezimbili kukhiqiza i-array ye-JSON. Ikhodi elindele i-array iyaphuka esimweni sento eyodwa. Lokhu kuwumthombo ovamile wamaphutha okuhlaziya i-RSS ne-SOAP.
  • Amagama endawo ayaphuma noma ayanyamalala. Kuye ngethuluzi, u-soap:Body angaphenduka i-key ebizwa ngokuqondile soap:Body, noma igama langaphambili lingasuswa ngokuphelele, okushintsha incazelo yedokhumenti.
  • Okuqukethwe okuxubene nobuhlobo. I-XML iphatha yonke into njengombhalo, ngakho ivelu elifana ne-true noma u-42 lingahlala liwumbhalo ngemva kokuguqulwa kube yi-JSON, kanti uhlangothi oluphambene alunayo indawo yemvelo yamazwana noma i-CDATA.
Izihlahla ezimbili zedatha ezakhiwe ndawonye zixhunywe amandodana amashukumo emabhukethi enziwe ngokukhanya okuluhlaza okwesibhakabhaka negolide
Ukumelana phakathi kwamafomethi kusho ukunquma ukuthi izici, ama-array, kanye namagama endawo ahunyushwa kanjani.

Kungani ukuguqula kwendawo kuphela kubalulekile

Imithwalo ye-JSON ne-XML kaningi iyona nto ebucayi kakhulu abaklami bezinhlelo abayiphathayo: izimpendulo ze-API ezinamathokheni, imilayezo ye-SOAP enezinombolo zama-akhawunti, amafayela okucushwa anemininingwane yokungena. Isiguquli esisebenza kusiphequluli asikaze silayishe noma yikuphi kwalokho. Ukuhlaziya nokwenza imibhalo (serialization) kwenzeka emshinini wakho, akukho okuthunyelwa kuseva, futhi ungasisebenzisa nangaphandle kwe-inthanethi ngemva kokuba ikhasi selifakiwe. Ekulungiseni idatha yasenkiqizweni noma noma yini engaphansi kwesimiso sokuvumelana, lowo ngumehluko phakathi kokuhlolwa okusheshayo okuphephile nokuvuza kwedatha ngephutha.

Uma udinga ukuhlanza umphumela ngemva kwalokho, hlanganisa lokhu namanye ama-zishintshi zedatha zethu, noma uhlanze okukhiphayo kwakho nge-sishintshi se-JSON ngaphambi kokuthi ukudlulisele kwithuluzi elilandelayo ku-pipeline yakho.

Imibuzo evame ukubuzwa

Isiguquli siyalayisha i-JSON noma i-XML yami ndawana thize?

Cha. Kokubili ukuguqula i-JSON ukuya ku-XML kanye ne-XML ukuya ku-JSON kwenzeka ngokugcwele kusiphequluli sakho. Idatha yakho ayikaze iphume kudivayisi lakho futhi ithuluzi liyasebenza ngaphandle kwe-inthanethi ngemva kokuba ikhasi selifakiwe.

Izici ze-XML ziphathwa kanjani lapho kuguqulwa kube yi-JSON?

Izici ze-XML zibekwa ku-key ekhethiwe, ngokuvamile ngaphambili nge-@ noma ziqoqwe ngaphansi kwebhulokhi lezici, ngoba i-JSON ayinawo umqondo wemvelo wesici. Okuqukethwe kombhalo wendodana kugcinwa ngokwehlukene ukuze kokubili kusinde ekuguquleni.

Kungani elementi lami elilodwa le-XML laphenduka i-objekthi esikhundleni se-array?

I-XML ayinawo ama-array emvelo, ngakho uhlu lithegi elifanayo eliphindwaphindwa. Uma kunelementi elilodwa kuphela elikhona, iziguquli azikwazi ukulihlukanisa ne-objekthi evamile, ngakho liphenduka i-objekthi. Izelamani ezimbili noma ngaphezulu ezinegama lethegi elifanayo zigoqana zibe yi-array ye-JSON.

Kwenzekani emagameni endawo e-XML afana ne-soap noma i-xmlns?

I-JSON ayinalutho olulinganayo namagama endawo e-XML. Kuye ngokuguqula, igama langaphambili ligcinwa njengombhalo ocacile ngaphakathi kwe-key noma lisuswe. Hlola okuphumayo uma umsebenzisi wakho ongaphansi encike emagameni endawo angaphambili.

Ngingaguqula i-JSON ibuyele ibe i-XML ngithole idokhumenti yokuqala?

Hhayi njalo ngokunembile. Ukuguqula kulahlekelwa okuthile kokubili izindlela ngoba izici ze-XML ezifana namazwana, i-CDATA, kanye nomehluko phakathi kwesici nendodana azinalutho olulinganayo oluhlanzekile ku-JSON. Ukuguqula okuphindwe kabili kusebenza kangcono uma ulawula imithetho yamagama kokubili izinhlangothi.

I-XML isasetshenziswa kuphi uma kuqhathaniswa ne-JSON?

I-XML ihlala ezinhlelweni zendulo nezenkampani enkulu: izinsiza zewebhu ze-SOAP, ukukhishwa kwezindaba ze-RSS ne-Atom, amafayela okucushwa, kanye nomlayezo wezezimali njenge-SWIFT ne-ISO 20022. I-JSON ibusa ama-API ewebhu esimanje, izindawo ze-REST, kanye nama-app efoni.