Vodiči

Šta je JSON? Jednostavan vodič sa primerima

JSON (JavaScript Object Notation) je jednostavan tekstualni format za zapisivanje strukturisanih podataka, kao što su klijent, porudžbina ili lista proizvoda, u obliku naziva uparenih sa vrednostima. Lak je za čitanje ljudima i lak za programe da ga naprave i obrade. Kada aplikacije i servisi razmenjuju podatke preko weba, JSON je daleko najčešći format.

Zašto je JSON važan kada pravite aplikacije 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 backend-a, ili kada vaš backend poziva servis za plaćanje, slanje mejlova ili AI servis, podaci najčešće putuju kao JSON. Pogledajte šta je API.
  • Fajlovi sa podešavanjima. Mnogi konfiguracioni fajlovi projekta su JSON, na primer package.json, koji navodi zavisnosti JavaScript projekta.
  • Baze podataka. Postgres može da čuva 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 da koristi, na primer listu oznaka ili 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 čitanje njih je često najbrži način da saznate šta nije u redu.

Čitanje JSON-a vam omogućava da proverite šta je aplikacija zaista primila, primetite nedostajuće polje i precizno opišete problem svom AI alatu.

Svakodnevna analogija

Zamislite papirni obrazac: Ime: ____, Telefon: ____, Newsletter: ☐ da ☐ ne. Svaki unos je naziv sa vrednošću pored sebe. JSON je taj obrazac zapisan kao tekst, u strogom rasporedu koji računar može da pročita bez pogađanja. Kao i obrasci, JSON može imati odeljke unutar odeljaka (blok adrese sa ulicom, gradom i poštanskim brojem) i liste (više brojeva telefona).

Kako izgleda JSON

Evo jedne rezervacije u JSON-u:

{
  "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 naziv/vrednost.
  • Svaki par je "naziv": vrednost, odvojen zarezima.
  • Uglaste zagrade [ ] obuhvataju niz, uređenu listu.
  • Objekti i nizovi mogu biti jedan u drugom, kao što su contact i extras.

Šest vrsta vrednosti

JSON ima samo šest tipova vrednosti. Ta mala lista je veliki deo razloga zašto radi svuda.

TipPrimerNapomene
String (tekst)"Lena Park"Uvek dvostruki navodnici
Broj35.5, -2, 1e6Bez navodnika; bez simbola valute
Booleantrue, falseMala slova, bez navodnika
Nullnull„Nema vrednosti“
Objekat{ "city": "Leeds" }Imenovane vrednosti
Niz[1, 2, 3]Uređena lista; stavke mogu biti bilo kog 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, gde Z znači UTC). Dogovor o tom formatu sprečava čitavu kategoriju grešaka sa vremenskim zonama.

Stroga pravila (odakle dolaze greške)

JSON je manje tolerantan nego što izgleda. Sve ovo je nevažeće:

{ 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“ potiče od jedne od ovih grešaka. JSON validator ili formater će vam pokazati tačan red.

Radni primer: JSON kroz aplikaciju

Klijent rezerviše šišanje u aplikaciji za salon. Evo gde se JSON pojavljuje:

  1. Obrazac za rezervaciju šalje ovo backend-u aplikacije:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
  1. Backend čuva rezervaciju u bazi podataka i odgovara statusom 201 Created i ovim:
{ "id": 5001, "status": "confirmed" }
  1. Ako je termin već zauzet, može umesto toga da odgovori statusom 409 Conflict i ovim:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }

Stranica čita status ili error i prikazuje odgovarajuću poruku. Ako umesto toga stranica prikaže prazan ekran, otvaranje alata za programere u pregledaču (karticu Network) pokazaće vam ovaj JSON, što je često najbrži trag do uzroka.

Ključni pojmovi

PojamZnačenje
KljučNaziv u paru naziv/vrednost, na primer "email".
ParsePretvaranje JSON teksta u podatke koje program može da koristi.
Serijalizacija / stringifyPretvaranje podataka u JSON tekst za slanje ili čuvanje.
PayloadPodaci poslati u zahtevu ili odgovoru.
ŠemaOpis oblika koji podaci treba da imaju: koja polja, kojih tipova. JSON Schema je standardan način da se ona napiše.
JSONBPostgres kolona za binarni JSON, koja može da se indeksira i pretražuje.
NDJSON / JSON LinesJedan JSON objekat po redu, čest za logove i strimovanje.

Česte zablude

  • „JSON je JavaScript.“ Potiče iz sintakse JavaScript-a, ali nije vezan za jezik; Python, Java, C#, Go i ostali ga čitaju.
  • „Brojevi u navodnicima su u redu.“ "35" je string, a ne broj. Mešanje dovodi do grešaka, na primer "35" + "5" postaje "355". Novac se često bolje čuva kao celi centi (3550) da se izbegnu greške pri zaokruživanju.
  • „JSON je bezbedan jer su to samo podaci.“ JSON može da nosi bilo šta, uključujući tajne. Ne stavljajte API ključeve u JSON koji se šalje pregledaču.
  • „Sve stavi u JSON kolonu.“ Zgodno za fleksibilne dodatke, ali podaci po kojima pretražujete, filtrirate ili spajate obično treba da budu u pravim kolonama.
  • „AI uvek vraća ispravan JSON.“ Modeli mogu dodati dodatni tekst ili pokvariti format. Mnogi provajderi nude režim strukturisanog izlaza, ali vaš kod ipak treba da proveri šta je stiglo.

Šta tražiti od AI alata za aplikacije

  • „Pokaži mi primer JSON-a koji ovaj endpoint vraća.“
  • „Vraćaj greške kao JSON sa error kodom i čitljivom message porukom.“
  • „Čuvaj datume kao ISO 8601 stringove u UTC i pretvaraj u lokalno vreme tek na ekranu.“
  • „Čuvaj cene kao cele cente.“
  • „Validiraj dolazni JSON na serveru i odbij zahteve sa nedostajućim poljima ili pogrešnim tipovima.“
  • „Kada pozivaš AI model, traži JSON u ovom tačnom obliku i proveri ga pre upotrebe.“

JSON u Mythex-u

Ne morate da pišete JSON ručno u Mythex-u: opišete šta želite, a agent napiše kod koji ga šalje i čita. Ipak, korisno je da ga prepoznate, jer kada nešto pukne, nalepljivanje JSON greške u chat daje agentu precizan trag. Dokumentacijski recept za REST API backend od početka traži „jasne JSON greške“, a recept integriši bilo koji API pokriva pozivanje spoljnih servisa. Za širu sliku pogledajte REST vs GraphQL i kako ispraviti grešku u aplikaciji napravljenoj uz AI.

Pitanja

Šta je JSON jednostavnim rečima?

JSON (JavaScript Object Notation) je format običnog teksta za zapisivanje strukturisanih podataka kao naziva i vrednosti, na primer „name“: „Lena“. Gotovo svaki veb API koristi JSON za slanje podataka tamo i nazad, a mnoge aplikacije ga koriste za podešavanja i sačuvane podatke.

Da li je 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 JavaScript-a, praktično svaki programski jezik može da ga čita i piše.

Koja je razlika između JSON-a i JavaScript objekta?

Liče jedno na drugo, ali je JSON strožiji. U JSON-u svaki ključ mora biti pod dvostrukim navodnicima, stringovi koriste dvostruke navodnike, nema komentara ni zareza na kraju, a vrednosti su ograničene na stringove, brojeve, true, false, null, objekte i nizove.

Zašto moj JSON kaže da je nevažeći?

Najčešći uzroci su zarez posle poslednje stavke, jednostruki navodnici umesto dvostrukih, nedostajući zarez između stavki, nezatvorena zagrada ili komentar. Nalepite ga u JSON validator i on će pokazati red sa greškom.

Mythex · Pricing · Pravite bilo šta uz AI · Šabloni za sajtove i aplikacije · Mythex u poređenju · Rečnik pojmova za pravljenje aplikacija uz AI · Besplatni alati za pravljenje aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)