Šta je JSON? Vodič objašnjen jednostavnim jezikom, s primjerima
JSON (JavaScript Object Notation) je jednostavan tekstualni format za zapisivanje strukturiranih podataka — stvari poput kupca, narudžbe ili liste proizvoda — kao parova naziva i vrijednosti. Lako ga je čitati ljudima, a programi ga lako generišu i parsiraju. Kada aplikacije i servisi razmjenjuju podatke preko weba, JSON je daleko najčešći format.
Zašto je JSON važan kada gradite uz AI
JSON ćete sretati stalno, čak i ako nikada ne pišete kod:
- API-ji. Kada ekrani vaše aplikacije učitavaju podatke iz njenog backenda, ili kada vaš backend zove uslugu za plaćanje, e-poštu ili AI, podaci obično putuju kao JSON. Pogledajte šta je API.
- Datoteke s postavkama. Mnoge konfiguracione datoteke projekta su JSON — na primjer
package.json, koji navodi zavisnosti JavaScript projekta. - Baze podataka. Postgres može čuvati JSON u koloni (tip
jsonb) za podatke koji se ne uklapaju u uredne redove i kolone. Pogledajte šta je Postgres. - Izlaz AI-ja. Kada želite da AI model vrati nešto što program može koristiti — listu oznaka, izvučena polja iz računa — obično tražite JSON.
- Poruke o greškama i logovi. Mnoge greške stižu kao JSON, a njihovo čitanje je često najbrži način da saznate šta nije u redu.
Sposobnost čitanja JSON-a omogućava vam da provjerite šta je vaša aplikacija zaista primila, primijetite nedostajuće polje i precizno opišete problem vašem AI graditelju.
Svakodnevna analogija
Zamislite papirni obrazac: Ime: ____, Telefon: ____, Newsletter: ☐ da ☐ ne. Svaki unos je oznaka s vrijednošću pored nje. JSON je taj obrazac zapisan kao tekst, u strogom rasporedu koji računar može pročitati bez nagađanja. I kao obrasci, JSON može imati odjeljke unutar odjeljaka (blok adrese s ulicom, gradom i poštanskim brojem) i liste (više brojeva telefona).
Kako izgleda JSON
Evo jedne rezervacije u JSON formatu:
{
"id": 5001,
"customer": "Lena Park",
"service": "Haircut",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["beard trim", "hot towel"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
Čitanje:
- Vitičaste zagrade
{ }obuhvataju objekat — skup parova naziva i vrijednosti. - Svaki par je
"name": vrijednost, odvojen zarezima. - Uglaste zagrade
[ ]obuhvataju niz — uređenu listu. - Objekti i nizovi mogu biti jedni unutar drugih, kao
contactiextras.
Šest vrsta vrijednosti
JSON ima samo šest tipova vrijednosti. Ta mala lista je velik dio razloga zašto radi svuda.
| Tip | Primjer | Napomene |
|---|---|---|
| String (tekst) | "Lena Park" | Uvijek dvostruki navodnici |
| Broj | 35.5, -2, 1e6 | Bez navodnika; bez simbola valute |
| Boolean | true, false | Mala slova, bez navodnika |
| Null | null | „Nema vrijednosti” |
| Objekat | { "city": "Leeds" } | Imenovane vrijednosti |
| Niz | [1, 2, 3] | Uređena lista; stavke mogu biti bilo kojeg tipa |
Ne postoji tip za datum. Datumi se pišu kao stringovi, obično u ISO 8601 formatu prikazanom gore (2026-10-03T14:00:00Z, gdje Z označava UTC). Dogovor o tom formatu izbjegava čitavu kategoriju grešaka sa vremenskim zonama.
Stroga pravila (odakle dolaze greške)
JSON je manje oprostljiv nego što izgleda. Sve ovo je neispravno:
{ name: "Lena" } ← ključ bez dvostrukih navodnika
{ 'name': 'Lena' } ← jednostruki navodnici
{ "a": 1, "b": 2, } ← zarez na kraju
{ "a": 1 "b": 2 } ← nedostaje zarez
{ "a": 1 // comment } ← komentari nisu dozvoljeni
Većina poruka „Unexpected token” koje vidite je jedna od ovih. Validator ili formater JSON-a pokazaće tačnu liniju.
Primjer: JSON kroz aplikaciju
Kupac rezerviše šišanje u aplikaciji salona. Evo gdje se JSON pojavljuje:
- Obrazac za rezervaciju šalje ovo backendu aplikacije:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend čuva rezervaciju u bazi podataka i odgovara statusom
201 Createdi ovim:
{ "id": 5001, "status": "confirmed" }
- Ako je termin već zauzet, može umjesto toga odgovoriti statusom
409 Conflicti ovim:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }
Stranica čita status ili error i prikazuje pravu poruku. Ako bi umjesto toga stranica prikazala prazan ekran, otvaranje alata za programere u pretraživaču (kartica Network) pokazalo bi vam ovaj JSON — često najbrži trag o tome šta je pošlo po zlu.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Ključ (key) | Naziv u paru naziva i vrijednosti, poput "email". |
| Parsiranje (parse) | Pretvaranje JSON teksta u podatke koje program može koristiti. |
| Serijalizacija / stringify | Pretvaranje podataka u JSON tekst za slanje ili čuvanje. |
| Payload | Podaci poslani u zahtjevu ili odgovoru. |
| Schema | Opis oblika koji podaci treba da imaju — koja polja, kojih tipova. JSON Schema je standardni način za njegovo pisanje. |
| JSONB | Postgresov binarni JSON tip kolone, koji se može indeksirati i pretraživati. |
| NDJSON / JSON Lines | Jedan JSON objekat po liniji, čest za logove i streaming. |
Česte zablude
- „JSON je JavaScript.” Potiče iz sintakse JavaScripta, ali nije vezan za jezik; Python, Java, C#, Go i ostali ga svi čitaju.
- „Brojevi u navodnicima su u redu.”
"35"je string, a ne broj. Miješanje dovodi do grešaka, poput"35" + "5"koji postaje"355". Novac se često bolje čuva kao cijeli centi (3550) da se izbjegnu problemi zaokruživanja. - „JSON je siguran jer su samo podaci.” JSON može nositi bilo šta, uključujući tajne. Ne stavljajte API ključeve u JSON koji se šalje pretraživaču.
- „Sve stavi u JSON kolonu.” Zgodno za fleksibilne dodatke, ali podaci po kojima pretražujete, filtrirate ili spajate obično pripadaju pravim kolonama.
- „AI uvijek vraća ispravan JSON.” Modeli mogu dodati dodatni tekst ili pokvariti format. Mnogi provajderi nude režim strukturiranog izlaza; vaš kod i dalje treba provjeriti šta stiže.
Šta tražiti od AI graditelja
- „Pokaži mi primjer JSON-a koji ovaj endpoint vraća.”
- „Vraćaj greške kao JSON s
errorkodom imessageporukom čitljivom za ljude.” - „Čuvaj datume kao ISO 8601 stringove u UTC-u i pretvaraj u lokalno vrijeme tek na ekranu.”
- „Čuvaj cijene kao cijele cente.”
- „Validiraj dolazni JSON na serveru i odbij zahtjeve s nedostajućim poljima ili pogrešnim tipovima.”
- „Kada zoveš AI model, traži JSON u ovom tačnom obliku i provjeri ga prije upotrebe.”
JSON u Mythexu
Ne morate ručno pisati JSON u Mythexu — opisujete šta želite, a agent piše kod koji ga šalje i čita. Ipak, korisno je prepoznati ga: kada nešto pukne, lijepljenje JSON greške u chat daje agentu precizan trag. Recept REST API backend u dokumentaciji od početka traži „jasne JSON greške”, a recept integracija bilo kojeg API-ja pokriva pozivanje vanjskih servisa. Za širu sliku pogledajte REST vs GraphQL i kako ispraviti grešku u aplikaciji izrađenoj uz AI.
Pitanja
Šta je JSON jednostavnim riječima?
JSON (JavaScript Object Notation) je format običnog teksta za zapisivanje strukturiranih podataka kao parova naziva i vrijednosti, poput „name”: „Lena”. Gotovo svaki web API ga koristi za slanje podataka naprijed-nazad, a mnoge aplikacije ga koriste za postavke i sačuvane podatke.
Je li JSON programski jezik?
Ne. JSON je format podataka, a ne jezik. Sam po sebi ne može ništa da uradi — samo opisuje podatke. Iako potiče iz JavaScripta, praktično svaki programski jezik ga može čitati i pisati.
Koja je razlika između JSON-a i JavaScript objekta?
Izgledaju slično, ali je JSON strožiji. U JSON-u svaki ključ mora biti u dvostrukim navodnicima, stringovi koriste dvostruke navodnike, nema komentara, nema zareza na kraju, a vrijednosti su ograničene na stringove, brojeve, true, false, null, objekte i nizove.
Zašto moj JSON kaže da je neispravan?
Uobičajeni uzroci su zarez nakon posljednje stavke, jednostruki navodnici umjesto dvostrukih, nedostajući zarez između stavki, nezatvorena zagrada ili komentar. Zalijepite ga u JSON validator i on će vam pokazati liniju.