JSON označava JavaScript Object Notation. Koristi se za opisivanje JavaScript objekata. To je format za razmjenu podataka koji specificira vrijednosti podataka pomoću parova ključ-vrijednost. JSON objekt podržan je u svim glavnim preglednicima. Ovaj vodič zahtijeva da ste upoznati s JavaScriptom i radom s JSON objektom. Kako biste se upoznali s JSON-om, možete pogledati naš pregled JSON formata za razmjenu podataka. Također možete provjeriti kako raditi s JSON-om u JavaScriptu.
JSON format također se koristi za prijenos podataka putem mreže. U tu svrhu podaci moraju biti serijalizirani i deserijalizirani. Kada su podaci u JSON formatu, pretvaraju se u niz znakova pomoću metode stringify. Za ponovno pretvaranje podataka u format objekta radi manipulacije, koristi se metoda parse. Ovaj vodič će proći kroz korake korištenja JSON.parse() i JSON.stringify(). Počnimo!
JSON.parse()
Ova se metoda koristi za pretvaranje JSON niza znakova u JSON objekt kako bi se njime moglo programski manipulirati. Niz koji se prosljeđuje mora biti valjani JSON niz, inače će se baciti iznimka. Ovaj se niz može primiti s bilo koje web usluge ili udaljene aplikacije.
Ova metoda prihvaća dva parametra: string i callback funkciju koja se može koristiti za manipulaciju nizom prije pretvaranja u objekt. Pretpostavimo da primamo poruku s web usluge koja ukazuje na status radnje, poruku i statusni kod. Ispod je jednostavan primjer kako se niz znakova može pretvoriti u objekt.
Kod:
|
1 2 3 |
let json_string = '{"message":"Done with success", "status":200, "code":200}' let server_obj = JSON.parse(json_string); console.log(server_obj) |
Izlaz:
|
1 |
{message: 'Done with success', status: 200, code: 200} |
Čest problem je kada se na kraj niza dodaju zarezi, pa JSON.parse() javlja pogrešku ako proslijeđeni niz ima zareze na kraju. Ako trebate manipulirati vrijednostima, možete proslijediti callbackfunkciju kao drugi argument.
Kod:
|
1 2 3 4 5 6 7 8 9 |
let string = '{"name":"XYZ","email":"xyz@example.com"}'; let obj = JSON.parse(string, (key, value) => { if (typeof value === 'string') { return value.toUpperCase(); } return value; }); console.log(obj) |
Izlaz:
|
1 |
{name: 'XYZ', email: 'XYZ@EXAMPLE.COM'} |
JSON.stringify()
Metoda stringify radi upravo suprotno od metode parse. Ovdje se prosljeđuje JSON objekt, a povratna vrijednost je niz znakova. Ovaj se niz može proslijediti nekoj drugoj udaljenoj web usluzi, na primjer, i zatim ponovno analizirati u JSON objekt radi manipulacije.
Kod:
|
1 2 3 |
let obj = {message:"Done with success", status:200, code:200} let str = JSON.stringify(obj); console.log(str); |
Izlaz:
|
1 |
{"message":"Done with success","status":200,"code":200} |
Metoda stringify može primiti dva argumenta: metode replacer i spacer. Metoda replacer može se koristiti za zamjenu ili isključivanje bilo kojih vrijednosti u nizu.
Kod:
|
1 2 3 4 5 6 7 8 9 |
let obj = {message:"Done with success", status:200, code:200} let str = JSON.stringify(obj, (key, value) => { if (status === 200) { return undefined; } return value; }); console.log(str) |
Izlaz:
|
1 |
{"message":"Uspješno dovršeno","status":200,"code":200} |
Kada se spacer argument proslijedi, svaki element niza ili objekta postavlja se u svoj redak i uvlači kako bi se prikazala njegova dubina u hijerarhiji objekata i nizova. Ispod je jednostavan isječak koda koji to ilustrira.
Kod:
|
1 2 3 |
let obj = {message:"Uspješno dovršeno", status:200, code:200} let str = JSON.stringify(obj, null, "---"); console.log(str) |
Izlaz:
|
1 2 3 4 5 |
{ ---"message": "Uspješno dovršeno", ---"status": 200, ---"code": 200 } |
Zaključak
U ovom vodiču pogledali smo dvije korisne metode za rad sa sadržajem u JSON formatu. JSON objekti su posvuda i pri izradi modernih aplikacija pomoću JavaScripta ove su metode vrlo korisne. Kako biste saznali više, pogledajte sljedeće vodiče na našem blogu:
- Osnove JavaScripta: Kako raditi s datumom i vremenom
- Rad s JavaScriptom: Kako funkcioniraju prototipovi i nasljeđivanje
- Vodič za dodavanje JavaScripta u HTML
Sretno programiranje!
Komentari
Još nema komentara. Budite prvi.