Viens no populārākajiem un efektīvākajiem datu lasīšanas un rakstīšanas formātiem mūsdienās ir JSON vai tā akronīms angļu valodā. JavaScript objekta apzīmējums, kuram ir iepriekš noteikts formāts un tas nav atkarīgs no nevienas programmēšanas valodas, ļaujot netraucēti un nemanāmi sazināties starp lietojumprogrammām.
Bet ne tikai JSON ir kļuvusi populārāka, JavaScript Tā kā programmēšanas valoda to arī ir darījusi, un tas pateicoties tās attīstības videi, ko sauc Node.js kas ļauj mums to palaist servera pusē.
Node.js dabiski un viegli atbalsta tipa objektus JSON Attiecībā uz datu saziņu aplūkosim dažādus veidus, kas mums ir Node.js, lai veiktu datu apstrādi JSON mūsu kodā.
1. Izveidojiet JSON objektu
Viena no galvenajām darbībām, kas mums jāapgūst, lai manipulētu ar JSON, ir objekta kā tāda izveidošana, kam, pateicoties šai radīšanai, mēs varēsim ātri un viegli piekļūt dažādiem tā atribūtiem.
Šim nolūkam mēs izveidosim jaunu failu ar nosaukumu json_creation.js kas saturēs mūsu JSON objekta, ko sauc par lietotāju, deklarāciju un tam būs vairāki atribūti, paskatīsimies, kā tas izskatās:
var user = {name: 'Solvetic Developer', email: '[email protected]', vecums: 36, RegistrationDate: new Date ()}Kā redzam, JSON struktūra pakļaujas atslēgas vērtības formai, kas sāk savu deklarāciju ar breketēm, kur mēs varam atrast vairāku veidu vērtības, sākot no rakstzīmju virknēm, cipariem un pat izmantojot funkciju Datums () lai iegūtu pašreizējo datumu. Mūsu objekta deklarācija ir diezgan viegli lasāma gan cilvēka acīm, gan jebkurai valodai, mēs pat varam deklarēt ligzdotu JSON objektu, lai grupētu pēc iespējas vairāk vērtību, apskatīsim, kā tas izskatās šajā piemērā:
var lietotājs = {vārds: 'Solvetic Developer', e -pasts: '[email protected]', vecums: 36, reģistrācijas datums: jauns Datums (), adrese: {pilsēta: 'Madride', valsts: 'Spānija'}}Ar mūsu JSON izveidots, ja vēlamies redzēt tā saturu, kā arī struktūru, izmantojot console.log () mēs to varam redzēt bez problēmām, redzēsim, kā izskatās mūsu galīgais kods:
var user = {name: 'Solvetic Developer', email: '[email protected]', vecums: 36, Reģistrācijas datums: jauns Datums (), adrese: {city: 'Madrid', country: 'Spain'}} konsole žurnāls (lietotājs);Visbeidzot, lai to palaistu mūsu konsolē, mums vienkārši jāizmanto komanda mezgls, kam seko faila nosaukums. Jūs varat pārbaudīt atbildi no konsoles.
Kā redzējām, mūsu JSON objekta izveide bija ārkārtīgi vienkārša, un tas pateicoties izstrādes videi un tās vietējai apstrādei un bez šī formāta problēmām.
2. Piekļuve atribūtiem
Spēja parādīt mūsu JSON ir noderīga, ja vēlamies pārbaudīt tā struktūru, meklējot kļūdas vai kādu citu detaļu, bet parasti pēc šī objekta ģenerēšanas visdrošāk ir piekļūt tā atribūtiem, pārbaudīt, vai atribūts pastāv vai saņēmuši to operācijā a RESTful API pārbaudiet, kādas īpašības ir mūsu objektam.
Ja mēs jau zinām kādu objektorientētu programmēšanu, mēs zinām, ka objektiem ir atribūti, un mēs varam tiem piekļūt, izmantojot attiecīgā objekta gadījumu. Node.js Tas ir daudz vienkāršāk, tikai izmantojot objektu un atribūta nosaukumu, kuram mēs varam tam piekļūt, redzēsim, kā mēs to attiecinām uz mūsu iepriekš izveidoto objektu:
var user = {name: 'Solvetic Developer', email: '[email protected]', vecums: 36, Reģistrācijas datums: jauns Datums (), adrese: {pilsēta: 'Madride', valsts: 'Spānija'}} konsole žurnāls ('Lietotājvārds:' + lietotāja vārds); console.log ('E -pasta lietotājs:' + lietotājs.pasts); console.log ('Lietotāja vecums:' + lietotāja vecums); console.log ('Reģistrācijas datums:' + user.RegistrationDate); console.log ('Lietotāja valsts:' + lietotāja valsts);Izpildīsim savu piemēru un redzēsim konsolē sniegto atbildi.
[pielikums = 7621: handle-json-nodejs-2.jpg.webp]
Tādā veidā mēs bez lielām problēmām varētu piekļūt visiem mūsu atribūtiem, tomēr, ja esam novērotāji, mēs saprotam, ka Lietotāja valsts sniedza mums atbildi nenoteikts, un tas ir tāpēc, ka tas ir ligzdots objekts, taču mums nevajadzētu uztraukties, jo, tikai ievietojot ietverto objektu, mēs varam piekļūt atribūtam:
console.log ('Lietotāja valsts:' + user.direction.country);Rādīsim vēlreiz mūsu piemēru un redzēsim, kā tika novērsta mūsu kļūda.
Mēs varējām to atrisināt bez problēmām, bet tas ir tāpēc, ka mēs zinām mūsu JSON struktūru, bet gadījumā, ja mēs to nezinām, mums ir jāizmanto citas metodes, kas mums palīdzēs šajā uzdevumā, jo tas ir Vienkārši kā atkārtot mūsu objekta atribūtus, redzēsim:
var lietotājs = {vārds: 'Solvetic Developer', e -pasts: '[email protected]', vecums: 36, reģistrācijas datums: jauns Datums (), adrese: {pilsēta: 'Madride', valsts: 'Spānija'}} (var atr lietotājā) {console.log (atr); }Mēs izmantojam savu piemēru un redzam, kā mēs saņemam visus mūsu objektā esošos atribūtus.
Tādā veidā, ja mēs nezinām sava JSON struktūru, mēs to varam viegli iegūt, un, ja mums ir ligzdoti objekti, mēs varam rīkoties šādi:
for (var atr in user.address) {console.log (atr); }Ja, izpildot to, tas mums piešķirs atribūtus, kas ietverti mūsu ligzdotajā objektā:
Visbeidzot, ja mēs vēlamies būt tiešāki un zināt, vai kāds identifikators pastāv pēc tā identifikatora, mēs varam izmantot šo funkciju hasOwnProperty () kas atgriezīs patiesu vai nepatiesu, ja tas pastāv vai ne:
var user = {name: 'Solvetic Developer', email: '[email protected]', vecums: 36, Reģistrācijas datums: jauns Datums (), adrese: {city: 'Madrid', country: 'Spain'}} konsole žurnāls (user.hasOwnProperty ('nosaukums')); console.log (user.hasOwnProperty ('dni')); console.log (user.hasOwnProperty ('vecums')); console.log (user.hasOwnProperty ('nosaukums'));Apskatīsim mūsu piemēra konsoles reakciju, kur pirmajam un trešajam atribūtam ir jāiegūst patiess, bet pārējiem diviem - nepatiess.
3. Atribūtu rediģēšana
Daudzas reizes, kad mēs manipulējam ar šāda veida objektiem, mums vajadzēs rediģēt informāciju, kas to atribūtos ir vairāk nekā vienu reizi, un strādāt ar Node.js Uzdevums nevar būt vienkāršāks, jo tikai piešķirot atribūtam jaunu vērtību, mēs varēsim rediģēt informāciju, redzēsim:
var lietotājs = {vārds: 'Solvetic Developer', e -pasts: '[email protected]', vecums: 36, reģistrācijas datums: jauns Datums (), adrese: {pilsēta: 'Madride', valsts: 'Spānija'}} lietotājs e -pasts = '[email protected]'; lietotājs.vecums = 18; console.log (lietotājs);Apskatīsim, kā mūsu objekta atribūti tika veiksmīgi pārrakstīti:
Papildus atribūta informācijas rediģēšanai mēs varam pievienot jaunu atribūtu JSON, redzēsim, kā mēs panākam šo darbību:
var lietotājs = {vārds: 'Solvetic Developer', e -pasts: '[email protected]', vecums: 36, reģistrācijas datums: jauns Datums (), adrese: {pilsēta: 'Madride', valsts: 'Spānija'}}; console.log (lietotājs); user ['position'] = 'Galvenais redaktors'; console.log (lietotājs);Ja mēs izmantojam savu piemēru, mēs varam redzēt mūsu sākotnējo objektu un pēc tam jauna atribūta iekļaušanu tā beigās, ļaujot mums vieglāk pievienot atribūtus savam objektam bez lielām pūlēm, redzēsim.
4. Atribūtu rediģēšana
Mēs esam redzējuši, kā izveidot objektu JSON un kā ar to efektīvi rīkoties, bet mēs varam iet tālāk un apvienot to ar Node.js kolekciju, iegūstot jauna veida elementu - JSON masīvu, kas nav nekas cits kā JSON objektu kolekcija. Lai to ilustrētu, mēs izveidosim objektu, kas saglabās lietotāja ierakstu saistībā ar iegādāto produktu sēriju, apskatīsim:
var datums = jauns Datums (); var transakcijas = {id: 1, user: 'Solvetic', dateTran: date, details: [{code: 'p01', product: 'PS4', price: 350}, {code: 'p02', product: '3DS ', cena: 199}, {kods:' p03 ', produkts:' iekurt ', cena: 60}]}Lai tai piekļūtu, mums vienkārši jāizmanto console.log () ar mūsu jaunā objekta nosaukumu, apskatīsim konsoles atbildi.
Kā redzam, mūsu struktūras secība ir daudz tīrāka un vieglāk pieejama lielākam atribūtu skaitam, pat ja mums ir ārkārtīgi liels skaits, mēs varam iet cauri mūsu JSON masīvam un iegūt tā parametrus šādi:
par (var i = 0; iLai pabeigtu, redzēsim konsoles atbildi, izpildot piemēru.
Mēs to esam redzējuši JSON apstrāde ar Node.js Tas ir gan vienkāršs, gan efektīvs, palīdzot mums veikt dažādas funkcijas un tā dabiskā apstrāde padara darbu ar šāda veida objektiem par vienu no vienkāršākajiem uzdevumiem, ko varam atrast.