Tutorijali Backend Development Frontend Development QA Testing
JSON što je to

Što je JSON?

JSON (JavaScript Object Notation) je format za prikaz i razmjenu podataka. Kao što mu ime kaže, svoje korijene veže za JavaScript, ali je zbog svoje jednostavnosti i fleksibilnosti brzo postao standardni komunikacijski medij između različitih programskih jezika. Danas se koristi kako u frontendu, tako i u backendu te u radu s bazama podataka. Zapravo, kad god je potrebna komunikacija između dvije programske platforme, možete biti sigurni da je JSON spona koja ih povezuje. Iz tog razloga svaki programer treba znati barem osnove JSON-a, jer će se prije ili kasnije susresti s njim i koristiti ga.

Tipovi podataka u JSON-u

Budući da JSON služi za razmjenu i prikazivanje podataka, potrebno je znati koje tipove podataka podržava. To su

  • string, odnosno svaki znak koji se nalazi unutar dvostrukih navodnika
"Ovo je string"
"Što je JSON"
"OG-CS"
  • brojevi, pri čemu je svejedno je li riječ o prirodnim, cijelim ili racionalnim brojevima
  • boolean, tip podatka koji može imati samo dvije vrijednosti
  • niz odnosno Array, koji može sadržavati bilo koji tip ovdje nabrojanih podataka. Nizovi se nalaze unutar uglate zagrade, baš kao u Javi ili nekom drugom programskom jeziku
  • objekt, najkompleksniji ali ujedno i najkorišteniji tip podataka unutar JSON-a. Objekti su uvijek unutar vitičastih zagrada
  • null, čime se označava kako objekt nema nikakvu vrijednost

Imajte na umu kako postoji BSON, što je superset JSON-a. BSON dopušta rad s još nekim tipovima podataka, a konkretno se koristi u radu s MongoDB. Tema ovog tutoriala nije BSON, nego ćemo se njime pozabaviti u posebnom tutorialu za MongoDB.

Pravilna sintaksa

Pri radu s JSON-om moraju se poštivati neka elementarna pravila. Ta su pravila jednostavna, ali se moraju dosljedno pratiti inače ćete dobiti neispravan rezultat.

  • prilikom kreiranja datoteke, ona mora imati ekstenziju .json
  • meta oznaka (MIME type) je application/json
  • takva datoteka može koristiti isključivo ranije nabrojane tipove podataka
  • podaci moraju biti razdvojeni zarezom
  • nizovi moraju biti unutar uglatih zagrada
  • objekti moraju biti unutar vitičastih zagrada
  • struktura ovakvog dokumenta svodi se na key/value parove (ključ i vrijednost). Key se uvijek nalazi na prvom mjestu i mora biti jedinstven, dok value može biti bilo koji tip podataka koje smo nabrojali. To izgleda ovako:
{"key": "value"}
{"imeFirme": "OG-CS"}
  • povedite računa kako se key mora nalaziti unutar dvostrukih navodnika, dok value to pravilo mora slijediti jedino ako je string. Key i value moraju biti razdvojeni dvotočkom.

Primjer JSON dokumenta

Da biste napravili JSON dokument, dovoljno je kreirati običnu tekstualnu datoteku sa sufiksom .json. U dokument možete staviti bilo koji tip podataka koje smo spominjali, ali u praksi se u ovakvom dokumentu nalaze nizovi (Arrays) ili objekti.

Ponovit ćemo jednostavan primjer JSON dokumenta u kojem se nalazi objekt, koji sadržava key/value par:

{"key": "value"}
{"imeFirme": "OG-CS"}

Kao što vidite objekt se nalazi unutar vitičaste zagrade, key i value su unutar dvostrukih navodnika te su razdvojeni dvotočkom. Kad imamo više takvih parova, između njih je potrebno staviti zarez.

{
"imeFirme": "OG-CS",
"grad": "Đakovo",
"ZIP": 31400,
"softverska firma": true
}

Primijetili ste da smo prilikom kreiranja objekta pratili .json sintaksu, koja nalaže kako se brojevi, boolean ili null vrijednosti ne pišu unutar dvostrukih navodnika. Isto tako, podatke smo razdvojili zarezom. Osim što mora biti jedinstven, key može sadržavati razmake. Oni se u praksi ne koriste, stoga ih ubuduće nećemo koristiti.

Korištenje nizova

Unutar key/value parova mogu se koristiti nizovi, koji su smješteni unutar uglatih zagrada. Nastavit ćemo primjer od ranije i nadopuniti ga nizom.

{
"imeFirme": "OG-CS",
"grad": "Đakovo",
"ZIP": 31400,
"softverskaFirma": true,
"klijenti": ["Volkswagen",
"BASF",
"T-Com",
"Deutsche Bahn"]
}

U key/value par “klijenti” dodali smo niz tvrtki za koje razvijamo softver, što je ilustracija kako JSON dokument može biti puno kompleksniji od primjera iz uvoda ovog tutoriala. Niz iz primjera sadrži stringove koji – prisjetimo se uputa za pravilnu sintaksu – moraju biti odvojeni zarezom. Isto tako, umjesto stringa u nizu može biti bilo koji drugi podatak podržan JSON-om, poput booleana, brojeva ili objekata. Sada idemo korak dalje u kojem ćemo dodati još jedan niz.

Kompleksni JSON

Prilikom rada s REST API i s NoSQL bazama podataka, JSON je ključan alat za razmjenu i pohranu podataka. Kako raste kompleksnost REST API zahtjeva i odgovora (eng. request i response), raste i kompleknost JSON datoteka. Naš primjer nadopunili smo zahtjevom za dohvaćanjem podataka o zaposlenicima naše kompanije, na što smo iz baze dobili key/value par “zaposlenici”.

{
	"imeFirme": "OG-CS",
	"grad": "Đakovo",
	"ZIP": 31400,
	"softverskaFirma": true,
	"klijenti": [
		"Volkswagen",
		"BASF",
		"T-Com",
		"Deutsche Bahn"
	],
	"zaposlenici": [
		{
			"ime": "Marko",
			"pozicija": "Software developer",
			"tehnologije": [
				"Java",
				"Docker",
				"MongoDB"
			],
			"slobodniDani": 30
		},
		{
			"ime": "Miroslav",
			"pozicija": "CTO",
			"tehnologije": [
				"Java",
				"JavaScript",
				"PHP",
				"Angular"
			],
			"slobodniDani": 30
		}
	]
}

Unutar tog para dodali smo novi niz, ali primijetite kako sada nismo dodali string ili brojeve. Ovog puta u niz smo ugnijezdili (eng. nesting) objekte, koji unutar sebe opet mogu imati nove nizove ili nove objekte. Takav nesting podataka može ići unedogled, zavisno od kompleksnosti podataka s kojim radite. Samim time rad s naizgled jednostavnim JSON-om može postati složen i zamoran, a mogućnost greške sve veća.

Greške u radu s JSON-om

Budući da se ovaj format u principu svodi na nekoliko jednostavnih pravila, i greške koje se pojavljuju također su jednostavne. Ali ponekad ih je prilično teško naći. Jedna od najčešćih grešaka prilikom kreiranja JSON dokumenta je izostavljanje dvostrukih navodnika oko key vrijednosti. Podjednako će vas namučiti zaboravljeni zarez.

Više s OG-CS.hr: Održali smo Ansible workshop

Jednostavne primjere iz ovog tutoriala je lako pregledati u potrazi za greškom, ali JSON dokumenti znaju biti znatno složeniji. U tom slučaju možete koristiti online alate poput stranice jsonLint, koji će provjeriti vaš JSON i pokazati gdje ste pogriješili. Ako koristite Notepad++, dodajte mu plugin JSON Viewer i provjeru ispravnosti JSON dokumenta odradite lokalno.

Autor

Marko Lubar

Ova stranica koristi kolačiće da bi poboljšalo korisničko iskustvo, više o tome možete saznajte na našoj stranici "politika privatnosti"

Politika privatnosti