json valoda. JSON: pamati
Noteikti jūs kādreiz esat dzirdējuši par JSON. Kas tas ir? Ko tas var darīt un kā to izmantot?
Šajā apmācībā mēs apskatīsim JSON pamatus un šādus punktus:
- Kas ir JSON?
- Kam tiek izmantots JSON?
- Kā izveidot JSON virkni?
- Vienkāršs JSON virknes piemērs.
- Salīdzināsim JSON un XML.
- Kā strādāt ar JSON JavaScript un PHP?
JSON ir vienkāršs, uz tekstu balstīts veids, kā uzglabāt un pārsūtīt strukturētus datus. Izmantojot vienkāršu sintaksi, varat viegli saglabāt jebko, sākot no viena skaitļa līdz virknēm, masīviem un objektiem vienkāršā tekstā. Varat arī saistīt masīvus un objektus kopā, lai izveidotu sarežģītas datu struktūras.
Kad JSON virkne ir izveidota, to var viegli nosūtīt uz citu lietojumprogrammu vai citu vietu tīklā, jo tā ir vienkāršs teksts.
JSON ir šādas priekšrocības:
- Tas ir kompakts.
- Tā teikumus ir viegli lasīt un salikt gan cilvēkiem, gan datoriem.
- To var viegli pārveidot par datu struktūru lielākajai daļai programmēšanas valodu (skaitļi, virknes, Būla vērtības, masīvi utt.)
- Daudzām programmēšanas valodām ir funkcijas un bibliotēkas JSON struktūru lasīšanai un izveidei.
Nosaukums JSON apzīmē JavaScript objektu notāciju. Kā norāda nosaukums, tas ir balstīts uz veidu, kā definēt objektus (līdzīgi kā asociatīvo masīvu izveidi citās valodās) un masīvus.
Kam tiek izmantots JSON?Visizplatītākais JSON lietojums ir datu sūtīšana no servera uz pārlūkprogrammu. Parasti JSON dati tiek piegādāti, izmantojot AJAX, kas ļauj pārlūkprogrammai un serverim sazināties bez nepieciešamības atkārtoti ielādēt lapu.
Varat arī izmantot JSON, lai nosūtītu datus no pārlūkprogrammas uz serveri, nosūtot JSON virkni kā parametru GET vai POST pieprasījumiem. Bet šī metode ir mazāk izplatīta, jo datu pārsūtīšanu, izmantojot AJAX pieprasījumus, var vienkāršot. Piemēram, produkta ID var tikt iekļauts vietrādī URL kā daļa no GET pieprasījuma.
jQuery bibliotēkai ir vairākas metodes, piemēram, getJSON() un parseJSON(), kas atvieglo datu izgūšanu, izmantojot JSON, izmantojot AJAX pieprasījumus.
Kā izveidot JSON virkni?Ir daži pamatnoteikumi JSON virknes izveidei:
- JSON virkne satur vērtību masīvu vai objektu (nosaukuma/vērtību pāru asociatīvo masīvu).
- Masīvs ir ietverts kvadrātiekavās ([ un ]) un satur komatu atdalītu vērtību sarakstu.
- Objekts ir ietverts krokainajās iekavās (( un )) un satur ar komatu atdalītu nosaukumu/vērtību pāru sarakstu.
- vārda/vērtības pāris sastāv no lauka nosaukuma, kas ievietots pēdiņās, kam seko kols (:) un lauka vērtība.
- Nozīme masīvā vai objektā var būt:
- Skaitlis (vesels skaitlis vai peldošais punkts)
- Virkne (dubultpēdiņās)
- Būla vērtība (patiesa vai nepatiesa)
- Cits masīvs (ielikts kvadrātiekavās)
- Cits priekšmets (iekļauts cirtainajās lencēs)
- nulles vērtība
Lai virknē iekļautu dubultpēdiņas, ir jāizmanto atpakaļvērstā slīpsvītra: \" . Tāpat kā daudzās programmēšanas valodās, virknē varat ievietot vadības rakstzīmes un heksadesimālos kodus, pirms tiem izmantojot atpakaļvērstās slīpsvītras. Detalizētu informāciju skatiet JSON vietnē.
Vienkāršs JSON virknes piemērsTālāk ir sniegts JSON formāta pasūtīšanas piemērs.
( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [aizsargāts ar e-pastu]", "contents": [ ( "productID": 34, "productName": "Super produkts", "quantity": 1 ), ( "productID": 56, "productName": "Miracle product", "quantity": 3 ) ], "pasūtījumsPabeigts": patiess )
Apskatīsim līniju sīkāk:
- Mēs izveidojam objektu, izmantojot cirtaini lencēm (( un )).
- Objektam ir vairāki nosaukumu/vērtību pāri: "orderID": 12345 Rekvizīts ar nosaukumu "orderId" un vesela skaitļa vērtību 12345 "shopperName": "Vanya Ivanov" rekvizīts ar nosaukumu "shopperName" un virknes vērtību "Vanya Ivanov". " "shopperEmail": " [aizsargāts ar e-pastu]" Īpašums ar nosaukumu "shopperEmail" ar virknes vērtību " [aizsargāts ar e-pastu]" "contents": [ ... ] Rekvizīts ar nosaukumu "contents", kura vērtība ir masīvs "orderCompleted": true Rekvizīts ar nosaukumu "orderCompleted" un Būla vērtība true
- Masīvā "saturs" ir 2 objekti, kas attēlo atsevišķus pasūtījuma vienumus. Katrs objekts satur 3 rekvizītus: produkta ID , produkta nosaukums un daudzums.
Starp citu, tā kā JSON pamatā ir JavaScript objektu deklarēšana, varat ātri un vienkārši padarīt iepriekš minēto JSON virkni par JavaScript objektu:
var cart = ( "pasūtījuma ID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [aizsargāts ar e-pastu]", "contents": [ ( "productID": 34, "productName": "Super produkts", "quantity": 1 ), ( "productID": 56, "productName": "Miracle product", "quantity": 3 ) ], "orderCompleted": true );
JSON un XML salīdzinājumsDaudzos veidos varat domāt par JSON kā alternatīvu XML, vismaz tīmekļa lietojumprogrammu telpā. AJAX koncepcija sākotnēji balstījās uz XML izmantošanu datu pārsūtīšanai starp serveri un pārlūkprogrammu. Taču pēdējos gados JSON ir kļuvis arvien populārāks AJAX datu pārsūtīšanai.
Lai gan XML ir pārbaudīta tehnoloģija, ko izmanto diezgan daudzās lietojumprogrammās, JSON priekšrocība ir tā, ka tas ir kompaktāks un vieglāk atpazīstams datu formāts.
Šādi izskatītos iepriekš minētais objekta piemērs XML formātā:
pasūtījumaID 12345 pircējsVārds Vaņa Ivanova pircējaE-pasts [aizsargāts ar e-pastu] saturs productID 34 productName Superpreces daudzums 1 productID 56 productName brīnumpreces daudzums 3 pasūtījumsPabeigts true
XML versija ir ievērojami lielāka. Patiesībā tas ir 1128 rakstzīmes garš, savukārt JSON versija ir tikai 323 rakstzīmes garš. Arī XML versiju ir diezgan grūti saprast.
Protams, tas ir radikāls piemērs. Un ir iespējams izveidot kompaktāku XML ierakstu. Bet pat tas būs ievērojami garāks nekā JSON ekvivalents.
Darbs ar JSON virkni JavaScriptJSON ir vienkāršs formāts, taču manuāli izveidot JSON virkni ir diezgan nogurdinoši. Turklāt jums bieži ir jāizmanto JSON virkne, tās saturs jāpārvērš mainīgā, ko var izmantot kodā.
Lielākajai daļai programmēšanas valodu ir rīki, lai viegli pārveidotu mainīgos par JSON virknēm un otrādi.
JSON virknes izveide no mainīgāJavaScript ir iebūvēta metode JSON.stringify(), kas izmanto mainīgo un atgriež JSON virkni, kas atspoguļo tā saturu. Piemēram, izveidosim JavaScript objektu, kas satur pasūtījuma informāciju no mūsu piemēra, un pēc tam izveidosim no tā JSON virkni:
var cart = ( "pasūtījuma ID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [aizsargāts ar e-pastu]", "contents": [ ( "productID": 34, "productName": "Super produkts", "quantity": 1 ), ( "productID": 56, "productName": "Miracle product", "quantity": 3 ) ], "orderCompleted": brīdinājums (JSON.stringify(grozs));
Šis kods radīs:
Ņemiet vērā, ka metode JSON.stringify() atgriež JSON virkni bez atstarpēm. To ir grūtāk nolasīt, taču tas ir kompaktāks pārraidei tīklā.
Ir vairāki veidi, kā parsēt JSON virkni JavaScript, taču visdrošākais un uzticamākais ir izmantot iebūvēto JSON.parse() metodi. Tas saņem JSON virkni un atgriež JavaScript objektu vai masīvu, kas satur datus. Piemēram:
var jsonString = " \ ( \ "pasūtījuma ID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [aizsargāts ar e-pastu]", \ "saturs": [ \ ( \ "productID": 34, \ "productName": "Super produkts", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": "Brīnumpreces", \"daudzums": 3\ ) \ ], \"pasūtījumsPabeigts": patiess \ ) \"; var grozs = JSON.parse(jsonString); brīdinājums(grozs.pircējsE-pasts); brīdinājums(grozs.contents.productName);
Mēs izveidojām jsonString mainīgo, kas satur mūsu parauga secības JSON virkni. Pēc tam šo virkni nododam metodei JSON.parse(), kas izveido objektu, kurā ir JSON dati, un saglabā to groza mainīgajā. Atliek tikai pārbaudīt, parādot satura masīva shopperEmail objekta un productName rekvizītus.
Rezultātā mēs iegūsim šādu rezultātu:
Reālā lietojumprogrammā jūsu JavaScript kods saņems pasūtījumu kā JSON virkni AJAX atbildē no servera skripta, nodod virkni JSON.parse() metodei un pēc tam izmantos datus, lai to parādītu lietotāja lapā.
JSON.stringify() un JSON.parse() ir citas iespējas, piemēram, izmantot atzvanīšanas funkcijas, lai pielāgotu konvertētu noteiktus datus. Šādas opcijas ir ļoti noderīgas dažādu datu pārveidošanai atbilstošos JavaScript objektos.
Darbs ar JSON virkni PHPPHP, tāpat kā JavaScript, ir iebūvētas funkcijas darbam ar JSON virknēm.
JSON virknes izveide no PHP mainīgāFunkcija json_encode() izmanto PHP mainīgo un atgriež JSON virkni, kas atspoguļo mainīgā saturu. Šeit ir mūsu pasūtījuma piemērs, kas rakstīts PHP:
Šis kods atgriež tieši tādu pašu JSON virkni kā JavaScript piemērā:
("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [aizsargāts ar e-pastu]""contents":[("productID":34,"productName":"Super produkts","quantity":1),("productID":56,"productName":"Brīnums produkts","daudzums": 3)]"orderCompleted":true)
Reālā lietojumprogrammā jūsu PHP skripts nosūtīs šo JSON virkni kā daļu no AJAX atbildes uz pārlūkprogrammu, kur JavaScript kods, izmantojot metodi JSON.parse(), parsēs to atpakaļ mainīgajā, lai to parādītu lietotāja lapā. .
Kā otro argumentu funkcijai json_encode() varat nodot dažādus karogus. Ar viņu palīdzību jūs varat mainīt mainīgo satura kodēšanas principus JSON virknē.
Izveidojiet mainīgo no JSON virknesLai JSON virkni pārveidotu par PHP mainīgo, izmantojiet metodi json_decode(). Aizstāsim mūsu JavaScript piemēru ar JSON.parse() metodi ar PHP kodu:
Tāpat kā JavaScript gadījumā, šis kods radīs:
[aizsargāts ar e-pastu] Brīnumprodukts
Pēc noklusējuma funkcija json_decode() atgriež JSON objektus kā PHP objektus. Ir vispārīgi stdClass klases PHP objekti. Tāpēc mēs izmantojam ->, lai piekļūtu objekta īpašībām iepriekš minētajā piemērā.
Ja jums ir nepieciešams JSON objekts kā saistīts PHP masīvs, funkcijai json_decode() ir jānodod true kā otrais arguments. Piemēram:
$grozs = json_decode($jsonString, patiess); echo $grozs["shopperEmail"] . "
"; echo $grozs["saturs"]["produkta nosaukums"] . "
";
Šis kods radīs tādu pašu izvadi:
[aizsargāts ar e-pastu] Brīnumprodukts
Varat arī nodot citus argumentus funkcijai json_decode(), lai norādītu rekursijas dziļumu un to, kā rīkoties ar lieliem veseliem skaitļiem.
SecinājumsLai gan JSON ir viegli saprotams un lietojams, tas ir ļoti noderīgs un elastīgs rīks datu pārsūtīšanai starp lietojumprogrammām un datoriem, īpaši, ja tiek izmantots AJAX. Ja plānojat izstrādāt AJAX lietojumprogrammu, tad nav šaubu, ka JSON kļūs par būtisku rīku jūsu darbnīcā.
Kas ir JSON un ko tas var darīt? Šajā rakstā jūs uzzināsit, kā izmantot JSON, lai ērti strādātu ar datiem. Mēs arī apskatīsim, kā strādāt ar JSON, izmantojot PHP un JavaScript.
Ja esat izstrādājis vietnes vai tīmekļa lietojumprogrammas kopumā, iespējams, vismaz garāmejot esat dzirdējis par JSON. Bet ko īsti nozīmē JSON? Ko var darīt šis datu formāts un kā to var izmantot?
Šajā rakstā mēs uzzināsim pamatus darbam ar json formātu. Mēs sekosim šādām tēmām:
- Kas ir JSON formāts?
- Kā izveidot JSON virknes?
- Vienkāršs JSON datu piemērs
- JSON salīdzināšana ar XML
Sāksim!
Kas ir JSON formāts?JSON ir vienkāršs, uz tekstu balstīts veids, kā uzglabāt un pārsūtīt strukturētus datus. Izmantojot vienkāršu sintaksi, varat viegli saglabāt gan vienkāršus skaitļus un virknes, gan masīvus un objektus, izmantojot tikai tekstu. Varat arī saistīt objektus un masīvus, kas ļauj izveidot sarežģītas datu struktūras.
Kad JSON virkne ir izveidota, to var viegli nosūtīt uz jebkuru lietojumprogrammu vai datoru, jo tas ir tikai teksts.
JSON ir daudz priekšrocību:
- Tas ir kompakts
- Tas ir cilvēkiem lasāms un viegli lasāms ar datoru
- To var viegli pārvērst programmatūras formātos: skaitliskās vērtībās, virknēs, Būla formātā, nulles vērtībā, masīvos un asociatīvajos masīvos.
- Gandrīz visās programmēšanas valodās ir funkcijas, kas ļauj lasīt un izveidot json datu formātu.
Burtiski saīsinājums JSON apzīmē JavaScript objektu notāciju. Kā aprakstīts iepriekš, šis formāts ir balstīts uz objektu izveidi, kas ir kaut kas līdzīgs asociatīvajiem masīviem citās programmēšanas valodās.
Kādiem nolūkiem tiek izmantots JSON?Galvenokārt json tiek izmantots datu apmaiņai starp JavaScript un servera pusi (php). Citiem vārdiem sakot, ajax tehnoloģijai. Tas ir ļoti ērti, ja nododat vairākus mainīgos lielumus vai veselus datu masīvus.
Lūk, kā tas izskatās piemērā:
Tādā veidā attēls tiek palielināts, nepārlādējot lapu pārlūkprogrammā. Tas ir ļoti ērti, ja nepieciešams saņemt daļējus datus vai pārsūtīt uz serveri nelielu informācijas apjomu.
Ikviena iecienītākajam jQuery ir getJSON() un parseJSON() funkcijas, kas palīdz strādāt ar formātu, izmantojot ajax pieprasījumus.
Kā izveidot JSON virknes?Tālāk ir sniegti pamatnoteikumi JSON virkņu izveidei.
- JSON virknē ir gan vērtību masīvs, gan objekts (asociatīvais masīvs ar nosaukuma/vērtības pāriem).
- Masīvs jāiekļauj kvadrātiekavās [ un ], un tajā var būt vērtību saraksts, kas ir atdalītas ar komatu.
- Objekti tiek apvilkti, izmantojot cirtainas rokas ( un ), un tajos ir arī ar komatu atdalīti vārdu/vērtību pāri.
- Vārda/vērtības pāri sastāv no lauka nosaukuma (dubultpēdiņās), kam seko kols (:), kam seko lauka vērtība.
- Vērtības masīvā vai objektā var būt:
- Skaitlis (vesels skaitlis vai punktēta daļa)
- Virknes (ievilktas dubultpēdiņās)
- Būla (patiesa vai nepatiesa)
- Citi masīvi (iesaiņoti kvadrātiekavās [ un ])
- Citi objekti (iesaiņoti cirtainās rokās ( un ))
- Nulle vērtība
Svarīgs! Ja vērtībās izmantojat dubultpēdiņas, atkāpieties no tām ar atpakaļvērstās slīpsvītras simbolu: \". Varat arī izmantot heksadecimālās rakstzīmes, tāpat kā citās programmēšanas valodās.
Vienkāršs JSON datu piemērsŠis piemērs parāda, kā varat saglabāt datus tiešsaistes veikala “grozā”, izmantojot JSON formātu:
("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [aizsargāts ar e-pastu]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "pasūtījumsPabeigts": patiess )
Sadalīsim šos datus pa daļām:
Visbeidzot, tā kā JSON ir identisks JavaScript objektiem, varat viegli izmantot šo piemēru un izveidot no tā JavaScript objektu:
var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [aizsargāts ar e-pastu]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "orderCompleted": true );
JSON salīdzināšana ar XMLVairumā gadījumu jūs domājat par JSON kā alternatīvu XML — vismaz tīmekļa lietojumprogrammās. Ajax koncepcija sākotnēji izmanto XML datu apmaiņai starp serveri un pārlūkprogrammu, taču pēdējos gados JSON ir kļuvis populārāks ajax datu pārsūtīšanai.
Lai gan XML ir pārbaudīta un pārbaudīta tehnoloģija, ko izmanto daudzas lietojumprogrammas, JSON formāta priekšrocības ir tādas, ka tas ir kompaktāks un vieglāk rakstāms un lasāms.
Šeit ir iepriekš minētais JSON piemērs, kas pārrakstīts tikai XML formātā:
pasūtījuma ID 12345 pircējsVārds Džons Smits pircējsE-pasts [aizsargāts ar e-pastu] saturs productID 34 productName SuperWidget daudzums 1 productID 56 productName WonderWidget daudzums 3 pasūtījumsCompleted true
Kā redzat, tas ir vairākas reizes garāks nekā JSON. Faktiski šajā piemērā ir 1128 rakstzīmes, savukārt JSON versijā ir tikai 323 rakstzīmes. XML versiju ir arī grūtāk lasīt.
Protams, nevar spriest tikai pēc viena piemēra, taču pat neliels informācijas apjoms aizņem mazāk vietas JSON formātā nekā XML formātā.
Kā strādāt ar JSON, izmantojot PHP un JS?Tagad mēs nonākam pie interesantākās daļas - JSON formāta praktiskās puses. Vispirms veltīsim cieņu JavaScript, pēc tam redzēsim, kā jūs varat manipulēt ar JSON, izmantojot PHP.
JSON formāta izveide un lasīšana, izmantojot JavaScriptLai gan JSON formāts ir vienkāršs, izstrādājot tīmekļa lietojumprogrammas, ir grūti rakstīt manuāli. Turklāt jums bieži ir jāpārvērš JSON virknes mainīgajos un pēc tam jāizmanto savā kodā.
Par laimi, daudzas programmēšanas valodas nodrošina rīkus darbam ar JSON virknēm. Kuras galvenā ideja:
Lai izveidotu JSON virknes, sāciet ar mainīgajiem, kas satur dažas vērtības, un pēc tam nosūtiet tos caur funkciju, kas datus pārvērš JSON virknē.
Lasot JSON virknes, jūs sākat ar JSON virkni, kurā ir noteikti dati, un nododat virkni caur funkciju, kas izveido mainīgos, kas satur datus.
Apskatīsim, kā tas tiek darīts JavaScript.
JSON virknes izveide no JavaScript mainīgāJavaScript ir iebūvēta metode JSON.stringify(), kas izmanto javascript mainīgo un atgriež JSON virkni, kas atspoguļo mainīgā saturu. Piemēram, izmantosim iepriekš izveidotu objektu un pārveidosim to par JSON virkni.
var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [aizsargāts ar e-pastu]", "contents": [ ( "productID": 34, "productName": "SuperWidget", "quantity": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantity": 3 ) ], "orderCompleted": patiess brīdinājums (JSON.stringify(grozs));
Lūk, kas parādīsies ekrānā:
("orderID":12345,"shopperName":"Džons Smits","shopperEmail":" [aizsargāts ar e-pastu]", "contents":[("productID":34,"productName":"SuperWidget","quantity":1), ("productID":56,"productName":"WonderWidget","quantity":3) ], "orderCompleted":true)
Ņemiet vērā, ka JSON.stringify() izvada JSON virknes bez atstarpēm. To ir grūti nolasīt, taču tas ir kompaktāks, kas ir svarīgi, sūtot datus.
JavaScript mainīgā izveide no JSON virknesIr vairāki veidi, kā parsēt JSON virknes, vispieņemamākais un drošākais ir izmantot JSON.parse() metodi. Tas aizņem JSON virkni un atgriež JavaScript objektu vai masīvu, kurā ir JSON dati. Šeit ir piemērs:
var jsonString = " \ ( \ "pasūtījuma ID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [aizsargāts ar e-pastu]", \ "saturs": [ \ ( \ "productID": 34, \ "productName": "SuperWidget", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": " WonderWidget", \"quantity": 3\ ) \ ], \"orderCompleted": true \ ) \"; var grozs = JSON.parse(jsonString); brīdinājums(grozs.pircējsE-pasts); brīdinājums(grozs.contents.productName);
Šeit mēs izveidojām mainīgo jsonString, kas satur JSON virkni no iepriekš sniegtajiem piemēriem. Pēc tam mēs nosūtījām šo virkni caur JSON.parse(), lai izveidotu objektu, kas satur JSON datus, kas tika saglabāti groza mainīgajā. Visbeidzot, mēs pārbaudām datu pieejamību un parāda informāciju, izmantojot brīdinājuma modālo logu.
Tiks parādīta šāda informācija:
Reālā tīmekļa lietojumprogrammā jūsu JavaScript kodam jāsaņem JSON virkne kā atbilde no servera (pēc AJAX pieprasījuma nosūtīšanas), pēc tam parsējiet virkni un lietotājam parāda groza saturu.
JSON formāta izveide un lasīšana, izmantojot PHPPHP, tāpat kā JavaScript, ir funkcijas, kas ļauj pārvērst mainīgos JSON formātā un otrādi. Apskatīsim tos.
JSON virknes izveide no PHP mainīgāJson_encode() ņem PHP mainīgo un atgriež JSON virkni, kas atspoguļo mainīgā datus. Šeit ir mūsu PHP rakstīta “groza” piemērs:
Šis kods rada tieši tādu pašu rezultātu kā JavaScript piemērs — derīga JSON virkne, kas atspoguļo mainīgo saturu:
("orderID":12345,"shopperName":"Džons Smits","shopperEmail":" [aizsargāts ar e-pastu]""contents":[("productID":34,"productName":"SuperWidget","quantity":1),("productID":56,"productName":"WonderWidget","quantity":3) ]"orderCompleted":true)
Patiesībā jūsu PHP skriptam ir jānosūta JSON virkne kā atbilde uz AJAX pieprasījumu, kur JavaScript izmantos JSON.parse(), lai pārvērstu virkni mainīgajos.
Funkcijā json_encode() varat norādīt papildu parametrus, kas ļauj konvertēt dažas rakstzīmes par hex.
PHP mainīgā izveide no JSON virknesLīdzīgi kā iepriekš, ir funkcija json_decode(), kas ļauj atšifrēt JSON virknes un ievietot saturu mainīgajos.
Tāpat kā JavaScript gadījumā, šis kods izvadīs sekojošo:
[aizsargāts ar e-pastu] WonderWidget
Pēc noklusējuma json_decode() atgriež JSON objektus kā PHP objektus. Līdzīgi kā parastajā sintakse, mēs izmantojam ->, lai piekļūtu objekta īpašībām.
Ja vēlāk vēlaties izmantot datus kā asociatīvu masīvu, vienkārši nododiet funkcijai json_decode() otro parametru. Šeit ir piemērs:
$grozs = json_decode($jsonString, patiess); echo $grozs["shopperEmail"] . "
"; echo $grozs["saturs"]["produkta nosaukums"] . "
";
Tas rada tādu pašu rezultātu:
[aizsargāts ar e-pastu] WonderWidget
Varat arī nodot papildu argumentus funkcijai json_decode(), lai noteiktu lielu skaitļu apstrādi un rekursiju.
Noslēgumā par JSON formātuJa plānojat izveidot tīmekļa lietojumprogrammu, izmantojot Ajax tehnoloģiju, datu apmaiņai starp serveri un pārlūkprogrammu noteikti izmantosit JSON formātu.
JSON ir teksta formāts datu ierakstīšanai. Tas ļauj teksta veidā attēlot gan vienu skaitli vai virkni, gan sarežģītas struktūras, piemēram, masīvus ar datiem. Šī ieraksta formāta izmantošana ir ērta, jo tas ir lasāms un intuitīvs, tajā pašā laikā ļaujot uzglabāt ļoti sarežģītas datu struktūras. Turklāt tas ir kompaktāks par xml, tāpēc, manuprāt, tas ir vairāk piemērots datu apmaiņai starp tīmekļa pārlūkprogrammu un serveri.
JSON sintakse ar piemēriemJson formāts parasti ir rakstīts divos variantos:
1. Vērtību secība. Piemēram, secība 10, 15 un "test" JSON formātā izskatītos šādi:
2. Ieraksts atslēgas veidā: vērtību pāri. Piemēram:
(“Pilns vārds”: “Ivanovs Sergejs”, “Dzimšanas datums”: “03/09/1975”)
Nedaudz sarežģītāks piemērs:
("Pilns vārds": "Ivanovs Sergejs", "Adrese": ("Pilsēta": "Maskava", "Iela": "Pjatņitskaja", "Māja": "35") )
PHP funkcijas darbam ar JSON formātuPHP valodā kopš versijas 5.2. ir tikai 4 funkcijas:
- json_decode — atkodē JSON virkni (iegūst datus no JSON formāta virknes)
- json_encode — atgriež datu JSON attēlu (pārvērš datus par JSON virkni)
- json_last_error_msg — atgriež virkni, kas norāda uz json_encode() vai json_decode() pēdējā izsaukuma kļūdas ziņojumu.
- json_last_error — atgriež pēdējo kļūdu
Būtībā lielākoties tiek izmantotas tikai divas funkcijas: json_encode un json_decode. Es neiedziļināšos viņu sintakses detaļās, sīkāku informāciju varat apskatīt vietnē php.net. Lietošanas piemērs:
$arr1 = masīvs(0,1,2); $json_str = json_encode($arr1); echo $json_str; // izvadīs json virkni: $arr2 = json_decode($json_str); atbalss $arr2; // izvadīs: 1
Lūdzu, ņemiet vērā: kodējot datus krievu valodā JSON formātā, funkcija json_encode pārvērš krievu rakstzīmes par Unicode, t.i. aizstāj tos ar \uXXXX un tādējādi json virkne kļūst nelasāma cilvēkiem (bet saprotama pārlūkprogrammai). Ja vēlaties izvairīties no konvertēšanas uz Unicode (piemēram, atkļūdojot kodu), varat vienkārši izmantot opciju JSON_UNESCAPED_UNICODE.
Varat arī izmantot JSON_UNESCAPED_SLASHES un JSON_NUMERIC_CHECK, lai kodēšanas laikā netiktu pievienotas atsoļa slīpsvītras un lai virknes ar cipariem tiktu kodētas kā skaitļi. Tā rezultātā, lai json virkne būtu cilvēka lasāma, mēs, piemēram, rīkojamies šādi:
$arr = array("fio" => "Ivanovs Sergejs", "vecums" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
Neizmantojot šīs opcijas, rinda būtu šāda:
( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "vecums" : "32",\\\: "https:l/ /vk.com\/id11111")
un, izmantojot opcijas, mēs iegūstam lasāmu rindu:
( "fio" : "Ivanovs Sergejs", "vecums" : 32, "vk_url" : "https://vk.com/id11111")
Vēl viens punkts: ja vēlaties, lai funkcija json_decode atgrieztu masīvu, dekodējot JSON virkni, vienkārši pievienojiet funkcijai otru parametru, kas vienāds ar patieso.
$json_str = "("a":1, "b":2, "c":3)"; $obj = json_decode($json_str); // iegūt objekta atbalsi $obj->a; // izvadīs 1 $arr = json_decode($json_str, true); // iegūt asociatīvu masīvu echo $arr["a"]; // izdrukās 1
Tas noslēdz manu PHP funkciju pārskatu.
JavaScript funkcijas darbam ar JSON formātuSāksim ar faktu, ka JSON formāts sākotnēji tika izgudrots JavaScript valodai un pēc tam kļuva vienkārši par atsevišķu teksta formātu, ko izmanto dažādās valodās. Acīmredzot tāpēc JSON sintakse ir ļoti līdzīga parasto objektu un masīvu rakstīšanas sintaksei.
// Masīva piemērs JavaScript arr = ; brīdinājums(arr); // parādīs 1 // Objekta piemērs JavaScript obj = ( "nosaukums": "Vasya", "vecums": 35, "isAdmin": false ) alert(obj.name); // izdrukās "Vasya"
JavaScript funkcijas, ko izmanto, lai konvertētu uz un no JSON formāta:
- JSON.parse — JSON virknes dekodēšana (virknes pārvēršana objektos un/vai masīvos)
- JSON.stringify — atgriež datu JSON attēlojumu (objektu un/vai masīvu pārveidošana par JSON virkni)
Vienkāršs piemērs json virknes dekodēšanai masīvā ar cipariem:
Str = ""; arr = JSON.parse(str); brīdinājums(arr); // izdrukās 1
Piemērs objekta konvertēšanai (serializēšanai) JSON virknē:
Obj = ( "vārds": "Vasja", "vecums": 35, "isAdmin": viltus ) brīdinājums(JSON.stringify(obj)); // tiks parādīts ("name":"Vasya","age":35,"isAdmin":false)
Serializējot (pārveidojot) objektu JSON virknē, tiek izsaukta šī objekta toJSON metode, ja tāda pastāv. Ja metodes nav, tad tiek uzskaitītas visas objekta īpašības. Piemērs objekta konvertēšanai ar toJSON metodi:
Obj = ("nosaukums": "Vasja", "vecums": 35, "isAdmin": false, toJSON: function() (atgriezt šo.vecumu; ) ) alert(JSON.stringify(obj)); // izdrukās 35
JSON formāta praktiskas pielietošanas piemēriPatiesībā es personīgi izmantoju JSON formātu 2 galvenajās situācijās:
1. Datu pārsūtīšana starp pārlūkprogrammu un serveri, izmantojot Ajax pieprasījumus.Piemēram, mums ir kāda lapa, kurā mums ir jāatjaunina dati, nepārlādējot lapu. Pieņemsim, ka jums ir nepieciešama informācija ar darbinieku sarakstu un viņu datiem, ko “lejupielādēt” no servera.
JavaScript, izmantojot jQuery, mēs to padarām vienkāršu un pārlūkprogrammā attēlojam datus tabulas veidā:
$.getJSON("get-info.php").success(function(data) ( // ajax pieprasījums, dati no servera tiks ierakstīti datu mainīgajā htmlstr = "