gjuha json. JSON: Bazat
Me siguri keni dëgjuar ndonjëherë për JSON. Çfarë është ajo? Çfarë mund të bëjë dhe si ta përdorni?
Në këtë tutorial ne do të mbulojmë bazat e JSON dhe do të mbulojmë pikat e mëposhtme:
- Çfarë është JSON?
- Për çfarë përdoret JSON?
- Si të krijoni një varg JSON?
- Një shembull i thjeshtë i një vargu JSON.
- Le të krahasojmë JSON dhe XML.
- Si të punoni me JSON në JavaScript dhe PHP?
JSON është një mënyrë e thjeshtë, e bazuar në tekst për të ruajtur dhe transmetuar të dhëna të strukturuara. Me një sintaksë të thjeshtë, mund të ruani lehtësisht çdo gjë nga një numër i vetëm deri te vargjet, vargjet dhe objektet në tekst të thjeshtë. Ju gjithashtu mund të lidhni grupe dhe objekte së bashku për të krijuar struktura komplekse të dhënash.
Pasi të krijohet vargu JSON, është e lehtë ta dërgoni atë në një aplikacion tjetër ose në një vendndodhje tjetër në rrjet sepse është tekst i thjeshtë.
JSON ka përparësitë e mëposhtme:
- Është kompakt.
- Fjalitë e tij janë të lehta për t'u lexuar dhe kompozuar si nga njerëzit ashtu edhe nga kompjuterët.
- Mund të konvertohet lehtësisht në një strukturë të dhënash për shumicën e gjuhëve programuese (numra, vargje, booleans, vargje, etj.)
- Shumë gjuhë programimi kanë funksione dhe biblioteka për të lexuar dhe krijuar struktura JSON.
Emri JSON qëndron për shënimin e objektit JavaScript. Siç sugjeron emri, ai bazohet në një mënyrë për të përcaktuar objektet (ashtu si krijimi i vargjeve shoqëruese në gjuhë të tjera) dhe vargjeve.
Për çfarë përdoret JSON?Përdorimi më i zakonshëm i JSON është dërgimi i të dhënave nga serveri në shfletues. Në mënyrë tipike, të dhënat JSON shpërndahen duke përdorur AJAX, i cili lejon shfletuesin dhe serverin të komunikojnë pa pasur nevojë të ringarkojnë faqen.
Ju gjithashtu mund të përdorni JSON për të dërguar të dhëna nga shfletuesi në server duke kaluar një varg JSON si parametër për kërkesat GET ose POST. Por kjo metodë është më pak e zakonshme, pasi transferimi i të dhënave përmes kërkesave AJAX mund të thjeshtohet. Për shembull, ID-ja e produktit mund të përfshihet në URL si pjesë e një kërkese GET.
Biblioteka jQuery ka disa metoda, si getJSON() dhe parseJSON(), që e bëjnë të lehtë marrjen e të dhënave duke përdorur JSON përmes kërkesave AJAX.
Si të krijoni një varg JSON?Ekzistojnë disa rregulla themelore për krijimin e një vargu JSON:
- Vargu JSON përmban ose një grup vlerash ose një objekt (një grup shoqërues çiftesh emra/vlerash).
- Arrayështë mbyllur në kllapa katrore ([ dhe ]) dhe përmban një listë vlerash të ndarë me presje.
- Nje objektështë mbyllur në kllapa kaçurrelë (( dhe )) dhe përmban një listë të ndarë me presje të çifteve të emrit/vlerës.
- çifti emër/vlerë përbëhet nga emri i fushës i mbyllur me thonjëza të dyfishta, i ndjekur nga dy pika (:) dhe vlera e fushës.
- Kuptimi në një grup ose objekt mund të ketë:
- Numri (numër i plotë ose me pikë lundruese)
- Varg (në thonjëza të dyfishta)
- Vlera Boolean (e vërtetë ose e gabuar)
- Një grup tjetër (i mbyllur në kllapa katrore)
- Një objekt tjetër (i mbyllur në mbajtëse kaçurrelë)
- vlerë zero
Për të përfshirë thonjëza të dyfishta në një varg, duhet të përdorni një vijë të prapme: \" . Ashtu si me shumë gjuhë programimi, mund të vendosni karaktere kontrolli dhe kode hex në një varg duke i paraprirë me një vijë të prapme. Shih faqen e internetit të JSON për detaje.
Shembull i thjeshtë i vargut JSONMë poshtë është një shembull i porositjes në formatin JSON:
( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email i mbrojtur]", "përmbajtja": [ ( "Produkt ID": 34, "Emri i produktit": "Super produkt", "sasia": 1 ), ( "ID-i i produktit": 56, "Emri i produktit": "Produkt mrekulli", "sasia": 3 ) ], "urdhri i plotësuar": e vërtetë)
Le të shohim linjën në detaje:
- Ne krijojmë një objekt duke përdorur mbajtëse kaçurrelë (( dhe )).
- Objekti ka disa çifte emri/vlere: "orderID": 12345 Një veti me emrin "orderId" dhe një vlerë të plotë 12345 "shopperName": "Vanya Ivanov" një pronë me emrin "shopperName" dhe vlerën e vargut "Vanya Ivanov " "shopperEmail": " [email i mbrojtur]" Një pronë e quajtur "shopperEmail" me një vlerë vargu " [email i mbrojtur]" "përmbajtje": [... ] Një veti e quajtur "përmbajtje" vlera e së cilës është një grup "orderCompleted": true Një veti e quajtur "orderCompleted" dhe vlera boolean true
- Ka 2 objekte në grupin "përmbajtje" që përfaqësojnë artikuj individualë në renditje. Çdo objekt përmban 3 veti: ID-ja e produktit, Emri i produktit dhe sasia.
Meqë ra fjala, meqenëse JSON bazohet në deklarimin e objekteve JavaScript, ju mund ta bëni shpejt dhe me lehtësi vargun e mësipërm JSON një objekt JavaScript:
var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email i mbrojtur]", "përmbajtja": [ ( "Produkt ID": 34, "Emri i produktit": "Super produkt", "sasia": 1 ), ( "ID-i i produktit": 56, "Emri i produktit": "Produkt mrekulli", "sasia": 3 ) ], "orderCompleted": true);
Krahasimi i JSON dhe XMLNë shumë mënyra, ju mund të mendoni për JSON si një alternativë ndaj XML, të paktën në hapësirën e aplikacionit në internet. Koncepti i AJAX u bazua fillimisht në përdorimin e XML për të transferuar të dhëna midis serverit dhe shfletuesit. Por vitet e fundit, JSON është bërë gjithnjë e më popullor për transportimin e të dhënave AJAX.
Ndërsa XML është një teknologji e provuar që përdoret në një numër të mjaftueshëm aplikacionesh, JSON ka avantazhin e të qenit një format më kompakt dhe më i lehtë për t'u njohur.
Kështu do të duket objekti i shembullit të mësipërm në XML:
ID e porosisë 12345 Emri i blerësit Vanya Ivanov blerësi Email [email i mbrojtur] përmbajtja ID-ja e produktit 34 emri i produktit Sasia super produkti 1 ID produkti 56 emri i produktit mrekulli sasia e produktit 3 porosi E plotësuar e vërtetë
Versioni XML është dukshëm më i madh. Në realitet është 1128 karaktere, ndërsa versioni JSON është vetëm 323 karaktere. Versioni XML është gjithashtu mjaft i vështirë për t'u kuptuar.
Sigurisht, ky është një shembull radikal. Dhe është e mundur të krijohet një rekord XML më kompakt. Por edhe ai do të jetë dukshëm më i gjatë se ekuivalenti JSON.
Puna me një varg JSON në JavaScriptJSON ka një format të thjeshtë, por krijimi i një vargu JSON me dorë është mjaft i lodhshëm. Për më tepër, shpesh ju duhet të merrni një varg JSON, të konvertoni përmbajtjen e tij në një variabël që mund të përdoret në kod.
Shumica e gjuhëve të programimit kanë mjete për të kthyer me lehtësi variablat në vargjet JSON dhe anasjelltas.
Krijimi i një vargu JSON nga një ndryshoreJavaScript ka një metodë të integruar JSON.stringify() që merr një variabël dhe kthen një varg JSON që përfaqëson përmbajtjen e tij. Për shembull, le të krijojmë një objekt JavaScript që përmban informacionin e rendit nga shembulli ynë dhe më pas të krijojmë një varg JSON prej tij:
var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [email i mbrojtur]", "përmbajtja": [ ( "Produkt ID": 34, "Emri i produktit": "Super produkt", "sasia": 1 ), ( "ID-i i produktit": 56, "Emri i produktit": "Produkt mrekulli", "sasia": 3 ) ], "orderCompleted": true (JSON.stringify(cart));
Ky kod do të prodhojë:
Vini re se metoda JSON.stringify() kthen një varg JSON pa hapësira. Është më e vështirë për t'u lexuar, por është më kompakte për transmetim në rrjet.
Ka disa mënyra për të analizuar një varg JSON në JavaScript, por më e sigurta dhe më e besueshme është përdorimi i metodës së integruar JSON.parse(). Ai merr një varg JSON dhe kthen një objekt ose grup JavaScript që përmban të dhënat. Për shembull:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [email i mbrojtur]", \ "përmbajtja": [ \ ( \ "ID-ja e produktit": 34, \ "Emri i produktit": "Superprodukti", \ "sasia": 1 \), \ ( \ "ID-ja e produktit": 56, \ "Emri i produktit": "Mallra mrekulli", \ "sasia": 3 \ ) \ ], \ "porosia e përfunduar": e vërtetë \ ) \ "; var cart = JSON.parse(jsonString); alarm (karrocë.shopperEmail); alarmi (karroca.përmbajtja.Emri i produktit);
Ne krijuam një variabël jsonString që përmban vargun JSON të rendit të shembullit tonë. Më pas ia kalojmë këtë varg metodës JSON.parse(), e cila krijon një objekt që përmban të dhënat JSON dhe e ruan atë në variablin e karrocës. Gjithçka që mbetet është të kontrolloni duke shfaqur vetitë e objektit shopperEmail dhe emri i produktit të grupit të përmbajtjes.
Si rezultat, ne do të marrim rezultatin e mëposhtëm:
Në një aplikacion real, kodi juaj JavaScript do të merrte porosinë si një varg JSON në një përgjigje AJAX nga skripti i serverit, do t'ia kalonte vargun metodës JSON.parse() dhe më pas do të përdorte të dhënat për ta shfaqur atë në faqen e përdoruesit.
JSON.stringify() dhe JSON.parse() kanë aftësi të tjera, si p.sh. përdorimi i funksioneve të kthimit të thirrjes për të konvertuar me porosi të dhëna të caktuara. Opsione të tilla janë shumë të dobishme për konvertimin e të dhënave të ndryshme në objekte të duhura JavaScript.
Puna me një varg JSON në PHPPHP, si JavaScript, ka funksione të integruara për të punuar me vargjet JSON.
Krijimi i një vargu JSON nga një ndryshore PHPFunksioni json_encode() merr një variabël PHP dhe kthen një varg JSON që përfaqëson përmbajtjen e ndryshores. Këtu është shembulli ynë i porosisë, i shkruar në PHP:
Ky kod kthen saktësisht të njëjtin varg JSON si në shembullin JavaScript:
("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [email i mbrojtur]","përmbajtja":[("produkt ID":34,"Emri i produktit":"Superprodukt","sasia":1),("ID produkti":56,"Emri i produktit":"Produkt mrekulli","sasia": 3)]"urdhri i plotësuar":true)
Në një aplikacion real, skripti juaj PHP do ta dërgojë këtë varg JSON si pjesë e një përgjigjeje AJAX në shfletues, ku kodi JavaScript, duke përdorur metodën JSON.parse(), do ta analizojë atë përsëri në një ndryshore për t'u shfaqur në faqen e përdoruesit. .
Ju mund të kaloni flamuj të ndryshëm si argumenti i dytë në funksionin json_encode(). Me ndihmën e tyre, ju mund të ndryshoni parimet e kodimit të përmbajtjes së variablave në një varg JSON.
Krijo një variabël nga një varg JSONPër të kthyer një varg JSON në një variabël PHP, përdorni metodën json_decode(). Le të zëvendësojmë shembullin tonë për JavaScript me metodën JSON.parse() me kodin PHP:
Ashtu si me JavaScript, ky kod do të prodhojë:
[email i mbrojtur] Produkt mrekulli
Si parazgjedhje, funksioni json_decode() kthen objektet JSON si objekte PHP. Ka objekte të përgjithshme PHP të klasës stdClass. Kjo është arsyeja pse ne përdorim -> për të hyrë në vetitë e objektit në shembullin e mësipërm.
Nëse ju nevojitet një objekt JSON si një grup PHP i lidhur, duhet të kaloni true si argumentin e dytë në funksionin json_decode(). Për shembull:
$cart = json_decode ($jsonString, e vërtetë); echo $cart["shopperEmail"] . "
"; echo $cart["përmbajtje"]["produktEmri"] . "
";
Ky kod do të prodhojë të njëjtin rezultat:
[email i mbrojtur] Produkt mrekulli
Ju gjithashtu mund t'i kaloni argumente të tjera funksionit json_decode() për të specifikuar thellësinë e rekursionit dhe mënyrën e trajtimit të numrave të plotë të mëdhenj.
konkluzioniMegjithëse JSON është i lehtë për t'u kuptuar dhe përdorur, ai është një mjet shumë i dobishëm dhe fleksibël për transferimin e të dhënave ndërmjet aplikacioneve dhe kompjuterëve, veçanërisht kur përdoret AJAX. Nëse po planifikoni të zhvilloni një aplikacion AJAX, atëherë nuk ka dyshim se JSON do të bëhet një mjet thelbësor në punëtorinë tuaj.
Çfarë është JSON dhe çfarë mund të bëjë? Në këtë artikull, do të mësoni se si të përdorni JSON për të punuar me lehtësi me të dhënat. Ne gjithashtu do të shohim se si të punojmë me JSON duke përdorur PHP dhe JavaScript.
Nëse keni zhvilluar faqe interneti ose aplikacione ueb në përgjithësi, ka shumë mundësi që të keni dëgjuar për JSON, të paktën kalimthi. Por çfarë do të thotë saktësisht JSON? Çfarë mund të bëjë ky format i të dhënave dhe si mund të përdoret?
Në këtë artikull do të mësojmë bazat e punës me formatin json. Ne do të ndjekim temat e mëposhtme:
- Cili është formati JSON?
- Si të krijoni vargje JSON?
- Shembull i thjeshtë i të dhënave JSON
- Krahasimi i JSON me XML
Le të fillojmë!
Cili është formati JSON?JSON është një mënyrë e thjeshtë, e bazuar në tekst për të ruajtur dhe transmetuar të dhëna të strukturuara. Me një sintaksë të thjeshtë, ju mund të ruani lehtësisht numra dhe vargje të thjeshtë, si dhe vargje dhe objekte, duke përdorur asgjë më shumë se tekst. Ju gjithashtu mund të lidhni objekte dhe vargje, gjë që ju lejon të krijoni struktura komplekse të dhënash.
Pasi të krijohet vargu JSON, ai mund të dërgohet lehtësisht në çdo aplikacion ose kompjuter pasi është thjesht tekst.
JSON ka shumë përparësi:
- Është kompakt
- Është i lexueshëm nga njeriu dhe i lehtë për t'u lexuar nga kompjuteri
- Mund të konvertohet lehtësisht në formate softuerësh: vlera numerike, vargje, format boolean, vlera null, vargje dhe vargje shoqëruese.
- Pothuajse të gjitha gjuhët e programimit kanë funksione që ju lejojnë të lexoni dhe krijoni formatin e të dhënave json.
Fjalë për fjalë, shkurtesa JSON qëndron për shënimin e objektit JavaScript. Siç u përshkrua më herët, ky format bazohet në krijimin e objekteve, diçka e ngjashme me grupet shoqëruese në gjuhë të tjera programimi.
Për çfarë qëllimesh përdoret JSON?Mbi të gjitha, json përdoret për të shkëmbyer të dhëna midis javascript dhe anës së serverit (php). Me fjalë të tjera, për teknologjinë ajax. Kjo është shumë e përshtatshme kur kaloni variabla të shumta ose grupe të tëra të dhënash.
Ja se si duket në një shembull:
Kështu zmadhohet imazhi pa ringarkuar faqen në shfletues. Kjo është shumë e përshtatshme kur na duhet të marrim të dhëna të pjesshme, ose të transferojmë një sasi të vogël informacioni në server.
jQuery e preferuar e të gjithëve ka funksionet getJSON() dhe parseJSON(), të cilat ju ndihmojnë të punoni me formatin përmes kërkesave ajax.
Si të krijoni vargje JSON?Më poshtë janë rregullat themelore për krijimin e vargjeve JSON:
- Vargu JSON përmban si një grup vlerash ashtu edhe një objekt (një grup shoqërues me çifte emër/vlerë).
- Vargu duhet të mbështillet në kllapa katrore, [ dhe ], dhe mund të përmbajë një listë vlerash që ndahen nga koma.
- Objektet janë mbështjellë duke përdorur krahë kaçurrelë, ( dhe ), dhe gjithashtu përmbajnë çifte emra/vlerash të ndara me koma.
- Çiftet emër/vlerë përbëhen nga emri i fushës (në thonjëza të dyfishta) i ndjekur nga një dy pika (:) e ndjekur nga vlera e fushës.
- Vlerat në një grup ose objekt mund të jenë:
- Numerike (numër i plotë ose thyesë me pika)
- Vargjet (të mbështjella me thonjëza të dyfishta)
- Boolean (e vërtetë ose e rreme)
- Vargje të tjera (të mbështjella në kllapa katrore [ dhe ])
- Objekte të tjera (të mbështjella me krahë kaçurrelë ( dhe ))
- Vlera zero
E rëndësishme!
Nëse përdorni thonjëza të dyfishta në vlera, shmangni ato me një vijë të prapme: \". Mund të përdorni gjithashtu karaktere të koduara hex, ashtu siç bëni në gjuhë të tjera programimi.Shembull i thjeshtë i të dhënave JSON
Shembulli i mëposhtëm tregon se si mund të ruani të dhënat në "karrocën" e një dyqani në internet duke përdorur formatin JSON: [email i mbrojtur]("orderID": 12345, "shopperName": "John Smith", "shopperEmail": "
", "përmbajtje": [ ( "ProduktID": 34, "Emri i produktit": "SuperWidget", "sasia": 1 ), ( "ID-ja e produktit": 56, "Emri i produktit": "WonderWidget", "sasia": 3 ) ], "urdhri i plotësuar": e vërtetë )
Brenda grupit të përmbajtjes, kemi dy objekte që shfaqin përmbajtjen e karrocës. Çdo objekt produkti ka tre veti: ID-ja e produktit, Emri i produktit, sasia.
Së fundi, meqenëse JSON është identik me objektet në JavaScript, mund ta merrni lehtësisht këtë shembull dhe të krijoni një objekt JavaScript prej tij: [email i mbrojtur] var karroce = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": "
", "përmbajtje": [ ( "ProduktID": 34, "Emri i produktit": "SuperWidget", "sasia": 1 ), ( "ID-ja e produktit": 56, "Emri i produktit": "WonderWidget", "sasia": 3 ) ], "orderCompleted": true );Krahasimi i JSON me XML
Megjithëse XML është një teknologji e provuar dhe e testuar që përdoret nga shumë aplikacione, avantazhet e formatit JSON janë se është më kompakt dhe më i lehtë për t'u shkruar dhe lexuar.
Këtu është shembulli i mësipërm JSON, i rishkruar vetëm në formatin XML:
ID-ja e porosisë 12345 Emri i blerësit John Smith shopperEmail [email i mbrojtur] përmbajtja ID-ja e produktit 34 emri i produktit Emri SuperWidget sasia 1 ID e produktit 56 emri i produktit WonderWidget sasia 3 porosi E plotësuar e vërtetë
Siç mund ta shihni, është disa herë më i gjatë se JSON. Në fakt, ky shembull është i gjatë 1128 karaktere, ndërsa versioni JSON është vetëm 323 karaktere. Versioni XML është gjithashtu më i vështirë për t'u lexuar.
Natyrisht, nuk mund të gjykohet vetëm me një shembull, por edhe sasi të vogla informacioni zënë më pak hapësirë në formatin JSON sesa në XML.
Si të punoni me JSON përmes PHP dhe JS?Tani kemi ardhur te pjesa më interesante - ana praktike e formatit JSON. Së pari, le t'i bëjmë nderim JavaScript, pastaj do të shohim se si mund të manipuloni JSON përmes PHP.
Krijimi dhe leximi i formatit JSON duke përdorur JavaScriptEdhe pse formati JSON është i thjeshtë, është e vështirë të shkruash manualisht kur zhvillon aplikacione ueb. Për më tepër, shpesh ju duhet të konvertoni vargjet JSON në variabla dhe më pas t'i përdorni ato në kodin tuaj.
Për fat të mirë, shumë gjuhë programimi ofrojnë mjete për të punuar me vargjet JSON. Ideja kryesore e së cilës:
Për të krijuar vargje JSON, ju filloni me variabla që përmbajnë disa vlera, pastaj i kaloni ato përmes një funksioni që i kthen të dhënat në një varg JSON.
Duke lexuar vargjet JSON, filloni me një varg JSON që përmban të dhëna të caktuara, kaloni vargun përmes një funksioni që krijon variabla që përmbajnë të dhëna.
Le të shohim se si bëhet kjo në JavaScript.
Krijimi i një vargu JSON nga një ndryshore JavaScriptJavaScript ka një metodë të integruar, JSON.stringify(), e cila merr një ndryshore javascript dhe kthen një varg json që përfaqëson përmbajtjen e ndryshores. Për shembull, le të përdorim një objekt të krijuar më parë dhe ta konvertojmë atë në një varg JSON.
Së fundi, meqenëse JSON është identik me objektet në JavaScript, mund ta merrni lehtësisht këtë shembull dhe të krijoni një objekt JavaScript prej tij: [email i mbrojtur]", "përmbajtje": [ ( "ProduktID": 34, "Emri i produktit": "SuperWidget", "sasia": 1 ), ( "ID-ja e produktit": 56, "Emri i produktit": "WonderWidget", "sasia": 3 ) ], "orderCompled": true (JSON.stringify(cart));
Kjo është ajo që do të shfaqet në ekran:
("orderID":12345,"shopperName":"John Smith","shopperEmail":" [email i mbrojtur]", "përmbajtje":[("produkt ID":34,"Emri i produktit":"SuperWidget","sasia":1), ("ID-ja e produktit":56,"Emri i produktit":"WonderWidget","sasia":3) ], "porosia u plotësua":true)
Vini re se JSON.stringify() nxjerr vargjet JSON pa hapësira. Është e vështirë për t'u lexuar, por është më kompakte, gjë që është e rëndësishme kur dërgoni të dhëna.
Krijimi i një ndryshoreje JavaScript nga një varg JSONKa disa mënyra për të analizuar vargjet JSON, më e pranueshme dhe më e sigurta është përdorimi i metodës JSON.parse(). Ai merr një varg JSON dhe kthen një objekt ose grup JavaScript që përmban të dhënat JSON. Ja një shembull:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [email i mbrojtur]", \ "përmbajtja": [ \ ( \ "ID-ja e produktit": 34, \ "Emri i produktit": "SuperWidget", \ "sasia": 1 \), \ ( \ "ID-ja e produktit": 56, \ "Emri i produktit": " WonderWidget", \"sasia": 3\ ) \ ], \"porosi e plotësuar": e vërtetë \ ) \"; var karroce = JSON.parse(jsonString); alarm (karroca.shopperEmail); alarmi (karroca.përmbajtja.Emri i produktit);
Këtu kemi krijuar një ndryshore, jsonString, e cila përmban vargun JSON nga shembujt e dhënë më parë. Pastaj e kaluam këtë varg përmes JSON.parse() për të krijuar një objekt që përmban të dhëna JSON, i cili u ruajt në variablin e karrocës. Së fundi, ne kontrollojmë për disponueshmërinë e të dhënave dhe shfaqim disa informacione duke përdorur dritaren modale të alarmit.
Informacioni i mëposhtëm do të shfaqet:
Në një aplikacion të vërtetë ueb, kodi juaj JavaScript duhet të marrë një varg JSON si përgjigje nga serveri (pas dërgimit të një kërkese AJAX), më pas të analizojë vargun dhe t'i shfaqë përdoruesit përmbajtjen e karrocës.
Krijimi dhe leximi i formatit JSON duke përdorur PHPPHP, si JavaScript, ka funksione që ju lejojnë të konvertoni variabla në format JSON dhe anasjelltas. Le t'i shikojmë ato.
Krijimi i një vargu JSON nga një variabël PHPJson_encode() merr një ndryshore PHP dhe kthen një varg JSON që përfaqëson të dhënat e ndryshores. Këtu është shembulli ynë i një "karroce" të shkruar në PHP:
Ky kod prodhon saktësisht të njëjtin rezultat si shembulli JavaScript - një varg i vlefshëm JSON që përfaqëson përmbajtjen e variablave:
("orderID":12345,"shopperName":"John Smith","shopperEmail":" [email i mbrojtur]""përmbajtja":[("ID-ja e produktit":34,"Emri i produktit":"SuperWidget","sasia":1),("ID-ja e produktit":56,"Emri i produktit":"WonderWidget","sasia":3) ]"porosia u plotësua":true)
Në realitet, skripti juaj PHP duhet të dërgojë një varg JSON si përgjigje ndaj një kërkese AJAX, ku JavaScript do të përdorë JSON.parse() për ta kthyer vargun në variabla.
Në funksionin json_encode(), mund të specifikoni parametra shtesë që ju lejojnë të konvertoni disa karaktere në hex.
Krijimi i një ndryshoreje PHP nga një varg JSONNgjashëm me sa më sipër, ekziston një funksion json_decode() që ju lejon të deshifroni vargjet JSON dhe të vendosni përmbajtjen në variabla.
Ashtu si me JavaScript, ky kod do të nxjerrë sa vijon:
[email i mbrojtur] WonderWidget
Si parazgjedhje, json_decode() kthen objektet JSON si objekte PHP. Ngjashëm me sintaksën e rregullt, ne përdorim -> për të hyrë në vetitë e një objekti.
Nëse më vonë dëshironi të përdorni të dhënat si një grup shoqërues, thjesht kaloni parametrin e dytë të vërtetë në funksionin json_decode(). Ja një shembull:
$cart = json_decode ($jsonString, e vërtetë); echo $cart["shopperEmail"] . "
"; echo $cart["përmbajtje"]["produktEmri"] . "
";
Kjo jep të njëjtin rezultat:
[email i mbrojtur] WonderWidget
Ju gjithashtu mund të kaloni argumente shtesë në funksionin json_decode() për të përcaktuar përpunimin e numrave të mëdhenj dhe rekursionin.
Si përfundim në lidhje me formatin JSONNëse do të krijoni një aplikacion ueb duke përdorur teknologjinë Ajax, sigurisht që do të përdorni formatin JSON për shkëmbimin e të dhënave midis serverit dhe shfletuesit.
JSON është një format teksti për regjistrimin e të dhënave. Kjo ju lejon të përfaqësoni në formë teksti një numër të vetëm ose varg, dhe struktura komplekse, për shembull, vargje me të dhëna. Përdorimi i këtij formati regjistrimi është i përshtatshëm sepse është i lexueshëm dhe intuitiv, ndërsa në të njëjtën kohë ju lejon të ruani struktura shumë komplekse të dhënash. Përveç kësaj, është më kompakt se xml, kështu që për mendimin tim është më i preferueshëm për shkëmbimin e të dhënave midis një shfletuesi uebi dhe një serveri.
Sintaksa JSON me shembujFormati json zakonisht shkruhet në 2 variante:
1. Rendi i vlerave. Për shembull, sekuenca 10, 15 dhe "testi" në formatin JSON do të duken kështu:
2. Regjistrimi në formën e çifteve kryesore: vlera. Për shembull:
("Emri i plotë": "Ivanov Sergey", "Data e lindjes": "03/09/1975")
Një shembull pak më kompleks:
("Emri i plotë": "Ivanov Sergey", "Adresa": ("Qyteti": "Moska", "Rruga": "Pyatnitskaya", "Shtëpia": "35") )
PHP funksionon për të punuar me formatin JSONNë gjuhën PHP që nga versioni 5.2. ka vetëm 4 funksione:
- json_decode - Deshifron një varg JSON (merr të dhëna nga një varg i formatit json)
- json_encode - Kthen një paraqitje JSON të të dhënave (konverton të dhënat në një varg json)
- json_last_error_msg - Kthen një varg që tregon mesazhin e gabimit të thirrjes së fundit te json_encode() ose json_decode()
- json_last_error - Rikthen gabimin e fundit
Në thelb, në pjesën më të madhe, përdoren vetëm dy funksione: json_encode dhe json_decode. Nuk do të hyj në detaje të sintaksës së tyre, mund të shikoni në php.net për më shumë detaje. Shembull përdorimi:
$arr1 = grup (0,1,2); $json_str = json_encode ($arr1); jehonë $json_str; // do të nxjerrë një varg json: $arr2 = json_decode($json_str); jehonë $arr2; // do të nxjerrë: 1
Ju lutemi vini re: kur kodoni të dhënat në rusisht në formatin JSON, funksioni json_encode konverton karakteret ruse në Unicode, d.m.th. i zëvendëson ato me \uXXXX dhe kështu vargu json bëhet i palexueshëm për njerëzit (por i kuptueshëm për shfletuesin). Nëse dëshironi të shmangni konvertimin në Unicode (për shembull, kur korrigjoni kodin), thjesht mund të përdorni opsionin JSON_UNESCAPED_UNICODE.
Gjithashtu, në mënyrë që të mos shtohen prerjet ikëse gjatë kodimit dhe që vargjet me numra të kodohen si numra, mund të përdorni JSON_UNESCAPED_SLASHES dhe JSON_NUMERIC_CHECK. Si rezultat, për ta bërë vargun json të lexueshëm nga njeriu, ne do të bëjmë, për shembull, këtë:
$arr = array("fio" => "Ivanov Sergey", "mosha" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
Pa përdorur këto opsione linja do të ishte si kjo:
( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "mosha" : "32", "vk_url" /vk.com\/id11111")
dhe duke përdorur opsionet, marrim një rresht të lexueshëm:
( "fio" : "Ivanov Sergey", "mosha" : 32, "vk_url" : "https://vk.com/id11111" )
Një pikë tjetër: nëse dëshironi që funksioni json_decode të kthejë një grup kur deshifroni një varg json, thjesht shtoni një parametër të dytë në funksion të barabartë me true.
$json_str = "( "a":1, "b":2, "c":3 )"; $obj = json_dekodi ($json_str); // merrni objektin echo $obj->a; // do të nxjerrë 1 $arr = json_decode($json_str, true); // merrni një grup shoqërues echo $arr["a"]; // do të printojë 1
Kjo përfundon rishikimin tim të funksioneve të PHP.
Funksionet JavaScript për të punuar me formatin JSONLe të fillojmë me faktin se formati JSON fillimisht u shpik për gjuhën JavaScript dhe më pas u bë thjesht një format teksti i veçantë i përdorur në gjuhë të ndryshme. Me sa duket, kjo është arsyeja pse sintaksa JSON është shumë e ngjashme me sintaksën për të shkruar objekte dhe vargje të zakonshme.
// Shembull i një grupi në JavaScript arr = ; alarm (arr); // do të shfaqë 1 // Shembull i një objekti në JavaScript obj = ( "emri": "Vasya", "mosha": 35, "isAdmin": false ) alert(obj.name); // do të shtypë "Vasya"
Funksionet JavaScript të përdorura për të kthyer në dhe nga formati JSON:
- JSON.parse - deshifrimi i një vargu JSON (konvertimi i një vargu në objekte dhe/ose vargje)
- JSON.stringify - kthen një paraqitje JSON të të dhënave (konvertimi i objekteve dhe/ose vargjeve në një varg json)
Një shembull i thjeshtë i deshifrimit të një vargu json në një grup me numra:
Str = ""; arr = JSON.parse(str); alarm (arr); // do të printojë 1
Një shembull i konvertimit (serializimit) të një objekti në një varg JSON:
Obj = ( "emri": "Vasya", "mosha": 35, "isAdmin": false ) alert(JSON.stringify(obj)); // do të shfaqet ("emri":"Vasya", "mosha":35,"isAdmin":false)
Kur serializohet (konvertohet) një objekt në një varg JSON, thirret metoda toJSON e këtij objekti, nëse ekziston. Nëse nuk ka metodë, atëherë renditen të gjitha vetitë e objektit. Një shembull i konvertimit të një objekti me metodën toJSON:
Obj = ( "emri": "Vasya", "mosha": 35, "isAdmin": false, përJSON: funksion() ( kthe këtë.moshë; ) ) alert(JSON.stringify(obj)); // do të printojë 35
Shembuj të zbatimit praktik të formatit JSONNë fakt, unë personalisht përdor formatin JSON në 2 situata kryesore:
1. Transferimi i të dhënave ndërmjet shfletuesit dhe serverit duke përdorur kërkesat e Ajax.Për shembull, ne kemi disa faqe në të cilat duhet të përditësojmë të dhënat pa e ringarkuar faqen. Le të themi se keni nevojë për informacion me një listë të punonjësve dhe të dhënat e tyre për t'u "shkarkuar" nga serveri.
Në JavaScript, duke përdorur jQuery, e bëjmë të thjeshtë dhe i shfaqim të dhënat në formën e një tabele në shfletues:
$.getJSON("get-info.php").success(funksion(të dhëna) ( // kërkesë ajax, të dhënat nga serveri do të shkruhen në variablin e të dhënave htmlstr = "