













Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
JSON skripta JSON skripta JSON skripta JSON skripta JSON skripta
Tipologija: Ispiti
1 / 21
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!














dokument se najčešće definiše kao anoniman objekat, stoga počinje znakom “{” i završava se znakom “}”. Kao što je rečeno, u JSON-u se promenljive definišu kao vrednosti (values). Sledi primer definisanja nove vrednosti: "naziv_promenljive": vrednost_promenljive Moguće vrednosti podataka u JSON-u šematski su prikazane na slici 1.
Slika SEQ Slika * ARABIC 1 – Definisanje vrednosti Ukoliko je potrebno definisati promenljivu (vrednost) ime , tipa string, čija je vrednost Petar , to se radi na sledeći način: "ime": "Petar" Dakle, „Petar“ predstavlja primer string-a. String je niz unicode karaktera. Moguće vrednosti karaktera u definisanom stringu prikazane su na slici 2.
Slika SEQ Slika * ARABIC 2 – Moguće vrednosti karaktera u string-u Vrednost tipa broj se definiše na sledeći način: "broj": 5 Brojevi se definišu bez navodnika. JSON ne prepoznaje oktalni i heksadecimalni sistem brojeva. Moguće vrednosti brojeva prikazane su na slici:
student: { ime: "Petar", prezime: "Petrovic" } }
Navedeni zapis ekvivalentan je XML zapisu:
Petar Petar
Prilikom kreiranja JSON fajlova, dobra je praksa kreirati jedan JSON objekat, u kome se nalaze ostali podaci. Taj objekat je analogan XML korenom elementu (kao što je prikazano u primeru 1). Prilikom čitanja većeg broja podataka iz baze, pogodno je koristiti strukturu niza. Na primer, u slučaju reprezentacije većeg broja studenata, moguće je koristiti sledeću JSON strukturu:
"studenti":[ {"id":"1","ime":"Petar","prezime":"Petrović","indeks":"123/12"}, {"id":"2","ime":"Pera","prezime":"Perić","indeks":"10/12"}, {"id":"3","ime":"Laza","prezime":"Lazić","indeks":"345/12"}, {"id":"4","ime":"Mika","prezime":"Mikić","indeks":"456/12"}, {"id":"5","ime":"Žika","prezime":"Žikić","indeks":"567/12"}, {"id":"6","ime":"Pavle","prezime":"Pavlović","indeks":"54/12"} ] }
Validacija JSON dokumenta
Da bi JSON dokument bio validan, neophodno je da nijedan element glavnog JSON objekta ne bude anoniman, odnosno da unutar glavnog JSON objekta ne postoji nijedna vrednost bez deklarisanog naziva promenljive. Na primer, sledeći JSON objekat nije validan: { [ {"ime":"Petar","prezime":"Petrović"}, {"ime":"Mika","prezime":"Mikić"}, {"ime":"Žika","prezime":"Žikić"} ] } Ali, sledeći JSON objekat jeste validan: { "studenti":[ {"ime":"Petar","prezime":"Petrović"}, {"ime":"Mika","prezime":"Mikić"}, {"ime":"Žika","prezime":"Žikić"} ] } Na Internetu postoji nekoliko različitih alata koji proveravaju validnost JSON dokumenta. Neki od njih su:
Kod parsiranja kompleksijih JSON podataka, koristi se JavaScript funkcija eval(). Ova funkcija brzo parsira podatke i podržava veliki broj browser-a. Međutim, postoji sigurnosni rizik vezan za izvršavanje skriptova. Naime, ako JSON varijabla sadrži u sebi neki skript, on će se izvršiti. Sledi primer parsiranja kompleksnijeg JSON objekta, u kome se nalazi niz studenata, nazvan studenti:
Zbog navedenog sigurnosnog rizika, eval() funkcija se koristi samo u slučaju ako je bitna kompatibilnost. Znatno sigurnije je korišćenje JSON.parse() funkcije, ali je njen nedostatak nedovoljna kompatibilnost, koja će se ispraviti prilikom definisanja sledeće verzije JavaScript standarda. Kod korišćenja JSON.parse () funkcije, bitno je da je JSON definisan kao string promenljiva. U sledećem primeru biće prikazano parsiranje iste JSON varijable korišćenjem JSON.parse() funkcije:
"student": { "ime": "Petar", "prezime": "Petrović" } }
Ime Prezime Indeks
studenti as $vrednost){ ?>
id;?> ime;?> prezime;?> indeks;?>
Ukoliko se JSON nalazi u posebnom, eksternom fajlu, taj fajl se može učitati korišćenjem funkcije file_get_contents(), čiji je jedini parametar naziv eksternog JSON fajla.
"studenti":[ {"id":"1","ime":"Petar","prezime":"Petrović","indeks":"123/12"}, {"id":"2","ime":"Pera","prezime":"Perić","indeks":"10/12"}, {"id":"3","ime":"Laza","prezime":"Lazić","indeks":"345/12"}, {"id":"4","ime":"Mika","prezime":"Mikić","indeks":"456/12"},
{"id":"5","ime":"Žika","prezime":"Žikić","indeks":"567/12"}, {"id":"6","ime":"Pavle","prezime":"Pavlović","indeks":"54/12"} ] }
ITEH
ID Ime Prezime Indeks
studenti as $vrednost){ ?>
id;?>
Generisanje JSON dokumenata (PHP)
Kao što je ranije napomenuto, JSON zbog svoje „laganosti“ predstavlja dobar format za prenos podataka putem Interneta i često se koristi kod veb servisa. JSON fajlovi se često generišu na osnovu podataka iz baze podataka i jedan JSON fajl se može koristiti za prikaz podataka na različitim uređajima. Samim tim, ista baza podataka se može koristiti za veb aplikaciju, desktop aplikaciju i mobilne aplikacije za različite platforme.
JSON fajlovi se najčešće generišu na serverskoj strani. U programskom jeziku PHP koristi se funkcija json_encode(), koja prima kao parametar jedan PHP objekat ili asocijativni niz, a vraća JSON objekat. Da bi se definisalo da PHP fajl vraća JSON, dobra praksa je slanje HTTP header-a koji sadrži MIME TYPE generisanog dokumenta. Ukoliko se generiše JSON, trebalo bi da se pošalje sledeći header na početku PHP koda: header("Content-type: application/json"); Ovaj header nedvosmisleno govori veb klijentu da je u pitanju JSON dokument. Da bi se u PHP-u uspešno generisao validan JSON, potrebno je na početku i kraju dokumenta otvoriti i zatvoriti vitičaste zagrade {}, kako bi se definisao jedan JSON objekat. Zatim se definiše varijable i definišu se njihove vrednosti. U sledećem primeru prikazano je generisanje jednog JSON fajla, na osnovu PHP niza, čiji su elementi PHP objekti.
ime = $ime; $this->prezime = $prezime; } }?>{"studenti":php $s1 = new student ("Petar","Petrovic"); $s2 = new student ("Pera", "Peric");
$s3 = new student ("Zika", "Zikic"); $niz_studenata = array ($s1, $s2, $s3); $json_studenti = json_encode ($niz_studenata); echo ($json_studenti); ?>}
Generisanje JSON fajla na osnovu podataka iz baze vrši se na slični način, s tim da redovi koji se izvlače iz baze prolaze kroz json_encode() funkciju. Primeri generisanja JSON fajlova na osnovu podataka iz baze dati su u Praktikumu. Postoji i drugi način generisanja JSON fajlova, gde se JSON generiše kao poseban fajl.
ime = $ime; $this->prezime = $prezime; } }
$json_podaci = "{"studenti":"; $s1 = new student ("Petar","Petrovic");
$s2 = new student ("Pera", "Peric"); $s3 = new student ("Zika", "Zikic");
$niz_studenata = array ($s1, $s2, $s3); $json_podaci .= json_encode ($niz_studenata);