ELPROS
JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation) je tekstualni format za prijenos strukture podataka koji je čitljiv i razumljiv ljudima i strojevima.  

Službena vrsta medijske datoteke (eng. Internet Media Type) za JSON je application/json, a ekstenzija za JSON datoteku označava se s .json.

—————————————————————————————————————————————————–

JSON tipovi podataka

Osnovni tipovi podataka JSON formata su: 

  • Broj (Number), 
  • Tekst (String). 
  • Logički tip podataka (Boolean)
  • Polje(Array)
  • Objekt (Object)
  • Null vrijednost (Null)

Broj (Number) 

 JSON podržava i cijele i decimalne brojeve, s time da su decimalni odvojeni točkom. Zapravo je vrlo sličan kao broj u C ili Java programskom jeziku, osim što se ne koriste oktalni i heksadecimalni formati.

Sintaksa i primjer:

var jsonObject = {string : value, … }

var object = {years: 17}

Tekst (String) 

Niz od nula ili više Unicode znakova. Stringovi su razdvojeni s dvostrukim navodnicima i podržavaju “backslash”

Sintaksa i primjer:

var jsonObject = { string : “string value”, … }

var object = { name: „Marko“ }

Logički tip podataka (Boolean)

Odnosi se na istinite ili lažne vrijednost (true / false).

Sintaksa i primjer:

var jsonObject = { string : true/false, … }

var object = { flag: true }

Polje(Array)

Sortirani niz vrijednosti koje mogu biti bilo kojeg tipa podataka. Polje može sadržavati i druga polja. Zatvoreni su unutar uglatih zagrada ‘ [ … ] ‘, vrijednosti se odvajaju zarezom, a indeksiranje polja može početi s nulom ili jedinicom.

Objekt (Object)

Nesortirani niz oblika ključ/vrijednost (eng. key/value) parova. 

Nalaze se unutar vitičastih zagrada ‘ { … } ‘, nakon svakog ključa slijedi dvotočka ‘ : ‘, a ključ /vrijednost parovi su odvojeni zarezom ‘ , ‘. 

Ključevi također moraju biti nizovi znakova (string) i trebaju biti različiti.

Null vrijednost (Null)

Null vrijednost predstavlja praznu vrijednost.

Sintaksa i primjer:

null

var k = null;

—————————————————————————————————————————————————–

Usporedba JSON i XML formata

S obzirom da se JSON format pokazao kao idealno rješenje za prijenos podataka koji su organizirani u polja te jednostavnih varijabli, učestalo se susreće kao konkurencija, tj. alternativa XML-u. 

JSON je format koji polako zamjenjuje XML jer ima nekolicinu prednosti u odnosu na XML.

JSON ne koristi oznake (eng. tags) pa stoga ima kraći kôd koji je lakši i brži za pisanje te razumljiviji za čitanje. Druga bitna razlika je što se u poruci s JSON zapisom može prenositi serijalizirani objekt. 

U jednom sustavu se objekt izradi, te se potom serijalizira. U drugom sustavu, koji komunicira s prvim sustavom, taj objekt u poruci može se deserijalizirati i nastaviti s daljnjim korištenjem. Upravo ta druga razlika je JSON učinila popularnim gdje su se prebrodila ograničenja XML-a. 

Treća prednost JSON-a u odnosu na XML je ta što se JSON prevodi (eng parsing) kroz standardnu JavaScript funkciju dok se XML prevodi kroz XML prevoditelj.

Primjer JSON zapisa:

{

    “marka”: HP,

    “ime”: “Pavillion”,

    “cijena”: 7000

}

Primjer XML zapisa:

<laptop>

    <marka> HP </marka>

    <ime> Pavillion </ime>

    <cijena> 7000 </cijena>

</laptop>

—————————————————————————————————————————————————–

XML format

XML – eXtensible Markup Language je jezik za opisivanje podataka koji omogućuje kreiranje gotovo neograničenog broja elemenata tako da ima vrlo širok spektar primjene. XML omoćuje strogo odvajanje strukture sadržaja od njegove prezentacije.

Razvio se iz SGML-a, standard XML 1.0 od 1998. malo se mijenjao, a služi kao temelj za mnoge druge standarde sa specijaliziranom primjenom:

  • XHTML – jezik za opisivanje i prikaz podataka na mreži, 
  • CML – jezik za opisivanje kemijskih jednadžbi, 
  • DocBook – jezik za opisivanje tehničke dokumentacije, 
  • Graph – jezik za razmjenu grafova, 
  • GPX – jezik za razmjenu GPS koordinata, 
  • MathML – jezik za opisivanje matematičkih notacija, 
  • MML – jezik za opisivanje glazbenih notacija…

XML dokument je tekstualni dokument sa ekstenzijom .xml.

Smještaj XML koda u tekstualni dokument omogućava prijenos datoteka neovisno o operacijskom sustavu i uređaju koji će datoteku prikazati.

  • XML element sastoji se od početne i završne oznake elementa te sadržaja među oznakama. 
  • Početna i završna oznaka sadržavaju ime elementa pisano malim slovima omeđeno sa <>. 
  • Završna oznaka ima / ispred imena.
  • Prazni elementi sastoje se samo od početne oznake i / čime se prepoznaje samozatvarajući element.
  • Svaki otvoreni element mora biti zatvoren.
  • Gniježđenje elemenata mora biti pravilno izvedeno, odnosno on mora biti zatvoren unutar roditeljskog.
  • Početne oznake elemenata XML-a mogu sadržavati i atribute koji pobliže opisuju element.
  • Atributi XML dokumenta nalaze se unutar početne oznake elementa i pišu se malim slovima. 
  • Nakon naziva atributa slijedi znak jednakosti te vrijednost atributa unutar dvostrukih navodnika. 
  • Elemenat može biti i bez atributa ili može sadržavati jedan ili više atributa. Ako atribut sadrži više od jedne vrijednosti, one se odvajaju praznim mjestom.
  • Komentari su posebna vrsta oznaka unutar XML dokumenta koji se ne procesiraju, a služe za postavljanje oznaka unutar XML koda koje dodatno opisuju kod. 
  • Počinju oznakom <!–, a završavaju sa –>

—————————————————————————————————————————————————–

Struktura XML dokumenta

Na vrhu, u prvoj liniji svakog XML dokumenta mora stajati deklaracija – instrukcija koja govori u kojem je standardu i u kojoj verziji standarda pisan ostatak dokumenta: <?xml version=‘1.0’ encoding=„UTF-8” ?> (preko atributa navedena je verzija dokumenta i naziv kodne stranice)

Dio dokumenta u kojem se nalazi deklaracija dokumenta naziva se prolog koji osim deklaracije može sadržavati i

definiciju tipa dokumenta  te razne procesne instrukcije.

Definicija tipa dokumenta sadrži pravila po kojima dokument mora biti strukturiran kako bi bio valjan i prošao provjeru točnosti strukture

Ključna riječ PUBLIC označava da je riječ o javnoj definiciji, SYSTEM označava privatnu definiciju tipa dokumenta (određuje se dostupnost).

Javnoj definiciji slijedi javni identifikator tipa dokumenta.

Druga stavka označava adresu datototeke koja sadržava sva pravila (standarda) za strukturiranje datoteke.

Svaki se dokument mora zbog provjere moći povezati sa odgovarajućom dtd datotekom (potrebna internetska veza).

Za izvođenje koda XML dokumenta nije presudna provjera valjanosti, već ispravno strukturiranje i pridržavanje sintaksnih pravila XML-a, no poželjno je da dokumenti prolaze validaciju zbog važnosti pridržavanja pravila standarda.

Nakon prologa slijedi korijenski element XML dokumenta (kod XHTML dokumenta korijenski je html element). On sadržava sve ostale elemente XML dokumenta

 Primjer:

<?xml version=‘1.0’ encoding=„UTF-8” ?>

<ucenici>

<ime>Marko</ime>

</ucenici>

Struktra XML dokumenta često se opisuje pomoću modela obiteljskog stabla

<?xml version=‘1.0’ encoding=„UTF-8” ?>

<razred>

<razrednik> Ivan Horvat </razrednik>

<ucenici>

    <ucenik spol=„M”>Marko Novak</ucenik>

    <ucenik spol=„Ž”>Marija Herman</ucenik>

    <ucenik spol=„Ž”>Ana Novosel</ucenik>

</ucenici>

</razred>

Sastoji se od deklaracije u prologu te korijenskog elementa razred unutar kojeg su elementi razrednik i ucenici, a u elementu ucenici nalaze se elementi ucenik.

Literatura:
https://www.w3schools.com/js/js_json_intro.asp
Sadržajh sa Loomena
Skip to content