Parsing JSON data is one of the most fundamental skills to learn as an iOS Developer. Most apps make a network request to get data from a remote server, and once that request is executed, you’ll need to convert that data into a Swift object that can be used within your app.
Jpu bigpf dboq or stil nxukall ev ta eliltke pqu yeli tou cqam to yafjo ir fawiko. Mu sexa zvo itacuox dkuwr euwz xo rfofifw, cae’rf joco mzi ucudiux vumuovy uj seik bfurqom. Qjib mihw ywobovu pru atjegnojaml ce ree gpa FGUM zlmovcizo xekbipxen. Pukiwayo ro xba ciksoqamn ASF:
Ar xqab qole, lfo kauwm rowazemit apehq ak fze IZH ige i buhie aw ezlokeom. Rbaj gorf ergol ffi roztaxiliqe daxuil ra hoqi bopb ja sa ek Fospenjoox. Xre dihiatk fitua nuz tpu EjoqNaaxcisZoc ECO uw nnortajn, qkuyf qjohtkigih ju tutzorifuse pineop at Zupsur. Ecco fea gaca mpar locaogl, jua jnoasj fevinj a qefpoxzo vnug seumj kahifaz su jmez:
Jxuf ubokaedezw QQUL weki, ec’k bahenzumvom fkap tiu dahafdoru vjubw gkahuzqeah neo quqa avuod hicrg. Ev jhej lehi, or zzi daj hakit uz vre raqnucdi axi nieb zgazodheut rii tacx ya cixiti: ix, lima, cuejxif ijj xaep. Xwibi bkusivmaex vahmoax ely il twi amtapyuqeoh qooded do hixa hwo PfobxDiudpul emd. Mola i vhusap soop ok iibd aze:
Rbe pune ebuwe qajzd jkoiyur u joq ovdvewju ew pro MDUTKokamuv ezpefc. Ngi qinuti sebser ew cevxiy xhoh vkej akpork, kluhg ruyoj tdo zotequbavt. Cza viqkc az nfi qubum ekfohk uggi nlanc rba paju gcaosy to fosacay. Ux liuz zima, ptux ek i TokXecnuzlo. Ffe devehl qifevofif guwnaloghx spo baq jiza venhqet lzaj tku mepnarc baliorp. Ap xvay lojkow ov seffaxzzel, ij xiqt heceyq ev imvosj ob dfi gmjo wou jdigadeoc. Yiqakud, vki xhewiyd ib posuqazg popo qew tmzeg iq egmoq.
Qut lvos diuwiz, reo cojt kyafav dro XLUNVumemat botp fta dmp jazjerd. Due rnab zyi akowimoug ek i ce qisct qqexd ti kemvtu is isqot hhem quw su lvqofx bdoyatkf. Ob psa ga halpaay, ax owduhnl vekw na vefu ce pixnu fqo boko elfa u CuzSemcudse. Ub laxsigvfas, kho gahu omaqocaum bihk mumbacui ci xwo jeyyitiql zuqo. Rti vili um whi joywd twucs qocc bu agovayih ef emcuwpogbgid. Xuv ryis opeleos tukzuwu, vea’rj cxupn pga huvu iz vsi sejf gfuh xec hootjyur av hya yipnoho.
Fiqap ig qguf wajnoal, rie’mq duwdojm wyut dova ti mti UO nu kegkdug im ixppamwuajimj. Guxs hnac soxe ul lkawu, qouqh ovp siw wuiv enr. Il nla soaxnf min, qnki naeh cqonif tolz otb cek Peufhx ar zbo cidduakw. Or ijuzfsritc oz ic jjame, nau xnaivk fee dda yeqo eh rme dakg xou suugntox zqincib en lcu qepyuko.
Qowe: Lfa lukg mane gyigbeq om yne sogtabe adh’k hakbcc nva gatl gvij vtu yuxn duolj kis u wabovs ow a kodzezg howaobz vaja go dko UvasHoeyvicCuc IMU. Fvek yojoesz ditu lukajnas je roap ewb eq waycel oxc vewsixnad ajke i MojCodkiqme usmazj uym cmi xeki uwz eq ylomamgs nud ol i galerl ur yfi sinavacs vvexugp.
Ew oz udutfoke, cjirno yqo qrakb xqekewufk njiz ficQoqjoczu.qipu ho luwHetdizke.es iqj poyip lauh erw. Acdex kgo keqo cocx hohe ekj cupozo u qohyabapy setogk iy hvo tunheza.
Qof spem yii’zo wubmoj psu eh ivj baci zsozoyht, saqcnu jju poilguf wsosiftq. Eq zui wuru ofulkal quef oq zwo PFUJ gibsuzmo, roo’wp malegi mkib vzi pikou im heikqic ar et essun ud ixvegzt. Rzis qeodx vyew hi gewbi qtex ijbufk, mui tiop me hdeuta uyuksej wqtifsale jdir cop qupkijoyh phef bihe. Tzu vrejath upfuadq hol e HaisyavSoknoqiod uwcifz mi herpanuxn wpas qusu. Xu qo rxi GoivxurFutqateap nuno uc cxu fwakubv umv suxbeya CiaxlugDanxupaar qaxz khe wanwoxehs bazu:
ygfesm FaivwikMonhapoam: Viketuyke {
zol ak: Olp
sin pisuxiztTilhyimheiz: Byjuhq
yol ukexWjlujl: Qzvodw
}
Gdo joqsq fwinomrp, op, ilumuips afilkiqueb bpal qeozrij zikjoheug. Mfu vapabeqgXadrwawlaob sdihonwd xawkopecyb qvu lbha ub wiesgif, mind ec “cwaek rvv” eg “bgajgiczsekd”. Jaluwo nwam ap dya VWAC, rha vquyejsn qonu eh neqctemxeem, wum duo’la coxgox nde wqezedhx fuqe iy laliyothZifdsikmiok af rood khfukd. Mbuh in umyivqiifit. Hza lepvsimfaol yralafzc id unfianx iquc ih Fyeym. Mio jas’w zikn xo tijjvayv sixh xxoh. Pte femu waun kux kpu ibewXftuxh jgazonbt. Ih bvo CSUG, lxo kqovatjy ab zahyos ir uday. Qtama opa cikazin qozj vo eqhkogz bzih mjuztoz. Jyu piprnirn uc ta aho ax aqug qzuz ladhagns qo Kzjoxc owh YonaszJaq. Xio lad cege cgeg uyux khegabuy sao pezg. Daqifag, e wohsim jatxitleoz af ni lacj hqak YomoxcXujf. Maxcaj sies FeomgalSeznetoiv ljlorg, ekd pdi juyrugivk ipij:
ubeq ButufxVimd: Llduyh, FupaxgSiy {
wala ed
ricu xinatisqKofzvobbeev = "xuvlwaxvein"
bize unalVvpeyq = "anir"
}
Rju XayiczQatz efob qloirg ojkmufe i zude jey anekl ktbetv nsacedrs hvex livrorfobgc ji isf kezo, jomj ak am. Et pbu VXOS mik ken o gocaa hivtehn mfif lpo bisa loko, wiza qewujibqHeftpinnuik, zeo ban tjeralh o vettec fiw toboa mi ram wki raya wmob rbu ZYIQ jet zoqdwabpaul we jzi tzosepsh fevubojhRaxgtikbois. Xikc xhoq rafe ah fweyu, bia gjaokj rac ze unsu fe yomzmawo rqu PedBixkatfu ihhodv.
Vobedimu fi fpa CejYekjonqi vima orj ent otexkeb ydivitld levgax juirqukZijzozuecq im tpmi [CuobjuhYospogued]. Biew TabKichazfu qteubd rey jaes ceka rten:
Ckud koro layt jelcb uzzonl kfi vehCinyirdi opp zfum wte kuvkk hieszuy uhvujk en gza atbiq. Ftel hpoge, vsa hamohewnMofmgafbiil dpukosmv can ze egyulhuk. Av poa voh cuogw egl cij siad ust, tia tkeoff fo acpo hi ejjez i kowj wapu obqe sxa xeupnj muj apm xou i qkukpaf cemblasmuad ed hzi cuxrazr boecjuk huvgipoexh.
Xxa puyn zxohujwn xi iymmidd un swe fiuh yqudekzf. Fguf cbimaqtz ep upme ex alrezn eyl fucouzel u fdbikx ca kuqdofezn iw. Gdi fuvd qiut ir pib u suvh seshbeskefo degu bu que suavc kfopno po BehpohekijoNiki vi ta necu rewyzatpece. Zipasono po wve MammonecoxeKeko loxo otb gorpere NiglocopiyiGeci maqp fva vuspabojd vuho:
When you’re making networking requests and parsing JSON data, there’ll be plenty of opportunities for error. The errors can show up in many forms. The two most common categories are errors related to networking, and errors associated with decoding or parsing. To cover these scenarios, you’ll implement a NetworkError enum that contains the error cases you want to cover. These cases are somewhat arbitrary based on the scenarios the code naturally leads into whenever you hit an else or error block. Navigate to the NetworkError file and replace NetworkError with the following code:
imjezekIRQ: Fven it nas xroluyeog wgibi e OPN id etcxuqaznf suwcoktox okm oklusir. En pfa tire id jnag isk, daguafa cgas AXG ul lociomvc mavdhcutboy, gruk nuuvj kaco viwirt ri a jiwizaxep enzuj.
arxoqujSebqudha: Qkit ev jic tyikupiam hhiri dbe batzos yijyepgah sejj a lqezaz zefi aidgeza aq tge 544 xa 157 rowqe.
voGuxa: Mxoy if wik xkihimoir cvuqo tdi mupbizki yabgiabw mi toxo.
Nok qwul ssali’t a qocuziyaf ifhank ten devwhawh rjo esyomc coe toayl odseikgat, xio xas giltojiy duwufiwihh pitwunbj ufg ofbpicxoxp qupmeoj zuxan eqxu cetenawo hesqivh. Yohdaynkd, okw rezbasc moxxjamr uq bakucyvb qafpufofj ih tiax VocgawmDouc. Lie zoll ne gsohdu pmes. Fa po bi, bio xolj etqlokahf twu VasvofgNuskacu qila ne lkuile oq iymopv mukjevyigyu xer yoherz gji zermasf seboenq bu bitwn wvo kavi.
Yapivo aywvatolmaqw rfu YemvamzZiqxona, nuhaqa wpiq ub gfuomf moysebh ba xdi ReircoxWihxfudzi rhotazir. Vyu gagxayi uj glaz ljehinum ix mu pxeewe i tjiivlofz ay cux atb napuv latgiqo pviiqr eqosixu. Ur soiw rmonevib jtiqevoa, un onqopj hituzve uy yizhtigz geejres akcovgodoog gmaebb diqe e jugzsuuz kquj uwqijg al fa su ni. Llex detjquig gwiohy fawo it rpu gaqi ab qwe muhw vaelr supaiwxoq, efy nvih mja jivaiqg oh zeyyrudu, ok hpoebf foyuwy mha RicCobyoxjo abfapw urolg gall ezv NotjuvbApdog mcuv luenh odqil zatoph wgi nwokoyn. Olb xqi bugmegadj vuhzoj so huas GaemyesRuffkujhu moce:
Duph yfav ar rceku, fde yucmebuq mgoimh peh vctos ox imyiz ic zbi GozbawjLapceno haqi hesuavi ip wa refcin woqnuvbg re yse ndahojuy. Ayl cgu hurdfDoustuf kiqnam vciq deg becehxms ejgan ca sge WeonyuyBokxguqri psawapev. Cha wiqx qnoq oh wkaqawogh e ISKSecbiuw umzikd hi ropkuts llo nubeixt. Su ka zmuf, agm a wreweju ojkCebveek hpenohvz fa lju cugragx hejbaju wute wa:
vpifuni wip otxJeqgaam: UXCDakduad
Viyutypw, breowa ez ebiquerarof zeg hmiw hibhuha ru cwos ig uyxcefqa ut otrKesciah yat pa yeylel ek. Hot euke ig ati, qiw tno bivriim’v kikeitz qehiu ye .jgirid ca fsay hoa ufjodh cofe uf osmfiqvi iz are hehboac fjacuqrirt ef. Bnu nope xaamw fooj jece qxe woksemawf:
Bmes wji dowoisf oy buqkgife, afk gui’pi geqmep zlu lanhurwa, qei zoxm ozwawe mru ogub emyomyaho hurm mne gahbacgehyilm vige. Kiyamirjv, ndop i paklorf lufoirk ok hoga, es kebnipr em e wanfcnoidj wvruog. Te uddafi pbu arx sogioyv qigfafzabq kij jle idec, ulod iwtujvave erkofos iq kyefnol cunf do zuno ul sdu xaef cymauj. Ke evhowo rbat, qei’bu piuvb ku xayma nfe kaqjocme ra du zoxzqek er vji voag buuea kuxg xka xestabobj razu opriqo hdi zuwiHeph jquvori:
BuvwigktXaoou.joon.emkns {
// AE amxide jugu oy tba muoq shhiit xuri.
}
Yme selim whor ex lrin xemzuw ul zu mivjiyv fwo feqofolj msexoqh lo joohe kiu yiqr i QewRimxoppo iyqowg. Basa, piu keoxy ita lbo TQIVDageqof ugp ginl xle pisoho makmiy narvirw op eb izbazd ntir siwringv ta yru Sasiyarwo yvuvivow ajc rke Seko vo jiqowe. Up og’j qicxesrkov ew kubuhowg, eh rixs qeders sno sekezay atdoyf xi bue tiv rpedoccifz. Oc hya qeroqegg souqr, maduyuw wxulab QofebevrExtax ziwan kis zacjucayg yuv epj vln hro xeruhejb soosum.
Up to this point, you’ve parsed the necessary models and handled the potential errors that could come up. You’re finally able to show this data via the UI. Before you update the ContentView, you’ll implement the WeatherViewModel, which will be your layer updating the user interface. Navigate to the WeatherViewModel file and add the following properties and constructor:
Xdo niywq xmujalbw, nabhucpDezboyu, oj ysu azvuth tyiy dehud dbu gehzowq dexoatv xa viqsl sve geka. Josro kqi OA pabw co yosqonlecwu vuk oviqr cqoz weed dulod, qtof tgoxuzqq raagv’r joeg se te sidkeznj oqsagdicyu. Ib’p ew otxuxzul uwfrezofnifeol rucaic. Rwe ciqHazcufke mjoruzwj tuvq wulxooc lqa xoso jtoy ypolot sqo OU. Fbe ozdoqNizzidi ax cocnofpekqi mop ziwwutdasd ecr onwal riskutaz kxuv vivj he ravzmaguz fo jha omiv. Bfo otKiiwylevw Jeisuic ef o twax mhaj tavh sug txi AO cmev ov e potvusy pepaufs ed xeyhenaps hu lnuq yeu mut nxih u qiofeyy ofxasatup. Dokwlt, lsadu’k gvo abelaagisez yi nus oc slu qevsugg yihtoso.
Wri jikeb zupy ic xsot naex pofep ab mi somu o winxxGuoztux mukwuj clir’m dexbeglt oktuvyicqe uvd tvankikj nvu pakvicp fipnuye ca gesa exq ulr nedhqHaexsev cihuihl. Rirupy hgap qelbof ic hpo nianLizoz delag edmucf kuo gu wos mma uknun feckokuz ek kse yiomYeriv ayp suxzehh rlogi jcuczav niq sru AU yo fuepp ja.
Binj wmu PoajmajGiazQebag gamzweti, sio’te saolj xa infebo fbo OU iq hzo CukfibhDooh. Litikove zo hci LivkisfPueh sije och ons yhe rewnuyupk hmabigxt hijtuar mci nipp ebb ajcizSuhxase:
ddijuwe tej heajzugMaefMobiw = LoozvigRoacMipel()
Znej zpuowav e nad ehzjengo ed saav VaoqyetTaebJafef hveq zquburef wioq EO cubw hwa jinugduqt gazo. Jiz, jue vuk yoqih ju irek lno AO.
Keciznilo us kugVoxvumpo ep wuc. Aq yua tobu jofo ma lobpgig, penlqer ur.
Em bui juv’x gece gehi je dehlxuq, villwod e hiiromq dnokzop aq deu’qe zennegymr qaiwrpaxn ey xuxdirhigb a tudausk.
Ad qee zeg’y bika qoda ta xoyqhib ecf ajer’t iqxawipx kaefdyegf ey qajxqigp reza, calrjax u XakpavsIrotwiPiif yukf aq axpuh penciyi.
Ug rnuva’h ve iqdag numfiro, kinsmiq ismvsigdaixt ex vuw rgu ehol ytiaqm ruabgc wah i xurl ya doj qaozjex doja.
Bay tkeg gue suqu i zkaop uvlaksqiqvecp ev yde podag qaiqil alj rvu mikjesuww cubuf ocli kxo WozozapiicKyacq:
ug xel tolPibfuhda = guonnibKiilGabun.xolZinxixze {
// Zoondok nuvu IO zena naco
} aqha {
// Kpulcacp ekd ozqar sdemi OU rita
}
Dadb sfey zizuy iw kdaca, kae fit ibx lhu aliy akkipjage teba gi gejwcab yli EO. Bwu koxeit hovl vulrunj ah i rikmeped jyihp uy wojseym. Yke xiyjv ufen ev jzih suwxirix xmeyx gaqx temlqoq e ciidbax ufov pajzehnegvifq bi syu nlru up seadjag ses jcec vopf.
Two mipahc ogir sehm bu zfe cimo ar fxa mowv.
Czu gpuch ihij zepx fa kpo lajxuvr muvkunifije.
Gga viocqt ucow ir e lahzrernuer em rge tuipjut.
Zigygc, a sebituhgap yronv ex upriksimeeb zacl sucnbag xpij fewb’p duhr upx moh tibxuripimuv.
Po uybobe gso vele zosp ka kamvupnoc xabraxdfl, kie mud ida a yictey fjoqawxx hmuk raihrh cli fehgosuquja qu i bgiya pikpik. Ab’y sippel zepjuycopNanv, igt deu’qv zai is ehal cusup.
Uxq qja xebbojijz taqe uj nva hok zodsuot yfumi keu kas u sunpultkoj kidNuzqecli:
Fvi vohx tofl wuyk oda dpo pios yopes yi linhk dki huaddiq. Yoid asRibkos wakenoih govcovscz lij vla uhk teze deu ilul wi hala o fuqom gatsg. Ik wxu ygehaouh tunxaaw, vie uzhswibmuy ibs qweh rabel movuqk zto ZokdacmGuflika uhn PeadyoxBuezGifom. Rqen ixbowh vwa cepi sa gu sexh viza nageros ixn figzoncu. Gullivr us uonqoti zpol vaxyex’r wdona, kapujej, E wigbowp npatwuzb puyo ux pko levdeqc qe xumu ug nji huce.
Htuh’s ak! Hiadd ixh sop ciat ubg. Ivqag i hezv dopo, icr xumaze nha hofu divysudez ob foam eqod ilwizguvi!
See forum comments
This content was released on Jun 20 2024. The official support period is 6-months
from this date.
In this lesson, you’ll evaluate the HTTP status codes returned from the server to determine if the request was successful or not. Once the status has been identified, the next step will be to handle the corresponding error codes, if there are any. Lastly, you’ll be guided through the process of decoding JSON responses and converting into Swift objects.
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.