Što je JSON? Vodič jednostavnim jezikom s primjerima
JSON (JavaScript Object Notation) je jednostavan tekstualni format za zapisivanje strukturiranih podataka, poput kupca, narudžbe ili popisa proizvoda, kao parova naziva i vrijednosti. Lako ga je čitati ljudima, a programima jednostavno proizvesti i obraditi. Kad aplikacije i servisi razmjenjuju podatke preko weba, JSON je daleko najčešći format.
Zašto je JSON važan kad gradite s AI-jem
JSON ćete susretati stalno, čak i ako nikad ne pišete kod:
- API-ji. Kad ekrani vaše aplikacije učitavaju podatke iz backenda ili kad vaš backend poziva servis za plaćanje, slanje e-pošte ili AI, podaci obično putuju kao JSON. Pogledajte što je API.
- Datoteke s postavkama. Mnoge konfiguracijske datoteke projekta su JSON, na primjer
package.json, koji popisuje ovisnosti JavaScript projekta. - Baze podataka. Postgres može spremati JSON u stupac (tip
jsonb) za podatke koji se ne uklapaju u uredne retke i stupce. Pogledajte što je Postgres. - Izlaz AI-ja. Kad želite da AI model vrati nešto što program može koristiti, na primjer popis oznaka ili izvučena polja s računa, obično tražite JSON.
- Poruke o greškama i logovi. Mnoge greške stižu kao JSON, a čitanje tih poruka često je najbrži način da saznate što je pošlo po zlu.
Čitanje JSON-a omogućuje vam da provjerite što je vaša aplikacija stvarno primila, uočite nedostajuće polje i precizno opišete problem svom AI alatu za izradu.
Svakodnevna analogija
Zamislite papirnati obrazac: Ime: ____, Telefon: ____, Newsletter: ☐ da ☐ ne. Svaki unos je naziv s vrijednošću pored njega. JSON je taj obrazac zapisan kao tekst, u strogom rasporedu koji računalo može čitati bez nagađanja. I kao obrasci, JSON može imati odjeljke unutar odjeljaka (blok adrese s ulicom, gradom i poštanskim brojem) i popise (više brojeva telefona).
Kako izgleda JSON
Evo jedne rezervacije zapisane u JSON-u:
{
"id": 5001,
"customer": "Lena Park",
"service": "Šišanje",
"startsAt": "2026-10-03T14:00:00Z",
"price": 35.5,
"paid": false,
"notes": null,
"extras": ["šišanje brade", "topli ručnik"],
"contact": {
"email": "lena@example.com",
"phone": "+44 20 7946 0000"
}
}
Čitanje:
- Vitičaste zagrade
{ }omotavaju objekt, skup parova naziva i vrijednosti. - Svaki par je
"naziv": vrijednost, odvojen zarezima. - Uglate zagrade
[ ]omotavaju niz, uređeni popis. - Objekti i nizovi mogu biti jedan unutar drugog, kao što su
contactiextras.
Šest vrsta vrijednosti
JSON ima samo šest vrsta vrijednosti. Taj mali popis je velik dio razloga zašto radi svuda.
| Vrsta | Primjer | Napomene |
|---|---|---|
| Niz znakova (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” |
| Objekt | { "city": "Zagreb" } | Imenovane vrijednosti |
| Niz (array) | [1, 2, 3] | Uređeni popis; stavke mogu biti bilo koje vrste |
Ne postoji tip za datum. Datumi se zapisuju kao nizovi znakova, obično u ISO 8601 formatu prikazanom gore (2026-10-03T14:00:00Z, gdje Z znači UTC). Dogovor o tom formatu sprječava cijelu kategoriju grešaka sa zonama vremena.
Stroga pravila (odakle dolaze greške)
JSON je manje tolerantan nego što izgleda. Ovo su sve neispravni zapisi:
{ name: "Lena" } ← ključ bez dvostrukih navodnika
{ 'name': 'Lena' } ← jednostruki navodnici
{ "a": 1, "b": 2, } ← završni zarez
{ "a": 1 "b": 2 } ← nedostaje zarez
{ "a": 1 // komentar } ← komentari nisu dopušteni
Većina poruka „Unexpected token” koje ćete vidjeti je jedna od ovih. JSON validator ili formatter pokazat će vam točan redak.
Radni primjer: JSON kroz aplikaciju
Kupac rezervira šišanje u aplikaciji za salon. Evo gdje se pojavljuje JSON:
- Obrazac za rezervaciju šalje ovo backendu aplikacije:
{ "service": "Šišanje", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend sprema rezervaciju u bazu 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": "Taj termin je upravo rezerviran. Odaberite drugi." }
Stranica čita status ili error i prikazuje odgovarajuću poruku. Ako umjesto toga stranica prikaže prazan ekran, otvaranje alata za programere u pregledniku (kartica Network) pokazalo bi vam ovaj JSON, što je često najbrži trag za pronalaženje greške.
Ključni pojmovi
| Pojam | Značenje |
|---|---|
| Ključ | Naziv u paru naziva i vrijednosti, poput "email". |
| Parsiranje | Pretvaranje JSON teksta u podatke koje program može koristiti. |
| Serijalizacija / stringify | Pretvaranje podataka u JSON tekst za slanje ili spremanje. |
| Payload | Podaci poslani u zahtjevu ili odgovoru. |
| Shema | Opis oblika koji podaci trebaju imati: koja polja, koje vrste. JSON Schema je standardni način da se ona zapiše. |
| JSONB | Postgresov binarni JSON stupac, koji se može indeksirati i pretraživati. |
| NDJSON / JSON Lines | Jedan JSON objekt po retku, čest za logove i streaming. |
Česte zablude
- „JSON je JavaScript.” Nastao je iz sintakse JavaScripta, ali nije vezan za jezik. Python, Java, C#, Go i ostali ga čitaju.
- „Brojevi u navodnicima su u redu.”
"35"je niz znakova, a ne broj. Miješanje uzrokuje greške poput"35" + "5"koje postaje"355". Novac se često bolje sprema kao cijeli iznos u centima (3550) kako bi se izbjegli problemi zaokruživanja. - „JSON je siguran jer su to samo podaci.” JSON može nositi bilo što, uključujući tajne. Ne stavljajte API ključeve u JSON koji se šalje pregledniku.
- „Stavi sve u JSON stupac.” Zgodno za fleksibilne dodatke, ali podaci po kojima pretražujete, filtrirate ili spajate obično pripadaju u prave stupce.
- „AI uvijek vraća ispravan JSON.” Modeli mogu dodati dodatni tekst ili pokvariti format. Mnogi pružatelji nude način rada sa strukturiranim izlazom, ali vaš kod ipak treba provjeriti ono što dobije.
Što tražiti od AI alata za izradu
- „Pokaži mi primjer JSON-a koji ovaj endpoint vraća.”
- „Vraćaj greške kao JSON s kodom
errori porukommessagečitljivom čovjeku.” - „Spremaj datume kao ISO 8601 nizove znakova u UTC-u i pretvaraj u lokalno vrijeme tek na ekranu.”
- „Spremaj cijene kao cijele iznose u centima.”
- „Validiraj ulazni JSON na serveru i odbij zahtjeve s nedostajućim poljima ili pogrešnim vrstama.”
- „Kad pozivaš AI model, traži JSON u točno ovom obliku i provjeri ga prije korištenja.”
JSON u Mythexu
Ne morate ručno pisati JSON u Mythexu. Opišete što želite, a agent napiše kod koji ga šalje i čita. Ipak, korisno ga je prepoznati: kad nešto pukne, zalijepljena JSON greška u chat daje agentu precizan trag. Vodič REST API backend u dokumentaciji od početka traži „jasne JSON greške”, a recept integriraj bilo koji API pokriva pozivanje vanjskih servisa. Za širu sliku pogledajte REST vs GraphQL i kako ispraviti aplikaciju izrađenu s AI-jem.
Pitanja
Što je JSON, jednostavno rečeno?
JSON (JavaScript Object Notation) je tekstualni format za zapisivanje strukturiranih podataka kao parova naziva i vrijednosti, na primjer „name”: „Lena”. Gotovo svaki web API ga koristi za slanje podataka naprijed-natrag, a mnoge aplikacije ga koriste za postavke i spremljene podatke.
Je li JSON programski jezik?
Ne. JSON je format podataka, a ne jezik. Sam ne može ništa učiniti, samo opisuje podatke. Iako potječ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 JSON je strožiji. U JSON-u svaki ključ mora biti u dvostrukim navodnicima, nizovi znakova također koriste dvostruke navodnike, nema komentara ni završnih zareza, a vrijednosti su ograničene na nizove znakova, brojeve, true, false, null, objekte i nizove.
Zašto moj JSON kaže da je neispravan?
Uobičajeni uzroci su završni zarez nakon zadnje stavke, jednostruki navodnici umjesto dvostrukih, nedostajući zarez između stavki, nezatvorena zagrada ili komentar. Zalijepite ga u JSON validator i on će pokazati redak.