Vodniki

Kaj je JSON? Preprost vodnik s primeri

JSON (JavaScript Object Notation) je preprosta besedilna oblika za zapis strukturiranih podatkov — na primer stranke, naročila ali seznama izdelkov — kot parov imen in vrednosti. Ljudje ga lahko preberejo, programi pa ga enostavno ustvarijo in razčlenijo. Kadar aplikacije in storitve izmenjujejo podatke prek spleta, je JSON daleč najpogostejša oblika.

Zakaj je JSON pomemben pri gradnji z AI

S JSON-om se boste srečevali nenehno, tudi če nikoli ne pišete kode:

  • API-ji. Kadar zasloni vaše aplikacije nalagajo podatke iz zaledja ali zaledje kliče storitev za plačila, e-pošto ali AI, podatki običajno potujejo kot JSON. Glejte kaj je API.
  • Datoteke z nastavitvami. Veliko konfiguracijskih datotek projekta je v JSON-u — na primer package.json, ki v JavaScript projektu navaja odvisnosti.
  • Baze podatkov. Postgres lahko JSON shrani v stolpec (tip jsonb) za podatke, ki se ne prilegajo lepo v vrstice in stolpce. Glejte kaj je Postgres.
  • Izhod AI. Kadar želite, da model AI vrne nekaj, kar lahko program uporabi — seznam oznak, izluščena polja z računa —, običajno zahtevate JSON.
  • Napake in dnevniki. Veliko napak pride v obliki JSON-a, njihovo branje pa je pogosto najhitrejši način, da ugotovite, kaj je šlo narobe.

Če znate brati JSON, lahko preverite, kaj je aplikacija dejansko prejela, opazite manjkajoče polje in svojemu graditelju z AI natančno opišete težavo.

Vsakdanja primerjava

Pomislite na papirnati obrazec: Ime: ____, Telefon: ____, Novice: ☐ da ☐ ne. Vsak vnos je oznaka z vrednostjo ob sebi. JSON je ta obrazec zapisan kot besedilo v strogi postavitvi, ki jo računalnik lahko prebere brez ugibanja. Tako kot obrazci lahko tudi JSON vsebuje odseke znotraj odsekov (blok naslova z ulico, mestom in poštno številko) in sezname (več telefonskih številk).

Kako izgleda JSON

Tukaj je ena rezervacija v 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"
  }
}

Branje:

  • Zavite zavite oklepaje { } objekt — nabor parov ime/vrednost.
  • Vsak par je "ime": vrednost, ločen z vejicami.
  • Oglati oklepaji [ ] ovijajo seznam — urejen niz elementov.
  • Objekti in seznami so lahko gnezdeni, kot sta contact in extras.

Šest vrst vrednosti

JSON pozna le šest vrst vrednosti. Ta kratek seznam je velik del razloga, da deluje povsod.

VrstaPrimerOpombe
Niz (besedilo)"Lena Park"Vedno dvojni narekovaji
Število35.5, -2, 1e6Brez narekovajev; brez simbolov valut
Logična vrednosttrue, falseMala črka, brez narekovajev
Nullnull»Ni vrednosti«
Objekt{ "mesto": "Ljubljana" }Poimenovane vrednosti
Seznam[1, 2, 3]Urejen seznam; elementi so lahko katerekoli vrste

Datumov tip ne obstaja. Datumi se zapisujejo kot nizi, ponavadi v formatu ISO 8601, prikazanem zgoraj (2026-10-03T14:00:00Z, kjer Z pomeni UTC). Dogovor o tem formatu prepreči celo vrsto napak s časovnimi pasovi.

Stroga pravila (tu nastajajo napake)

JSON je manj prizanesljiv, kot se zdi. Vsi ti zapisi so neveljavni:

{ name: "Lena" }            ← ključ brez dvojnih narekovajev
{ 'name': 'Lena' }          ← enojni narekovaji
{ "a": 1, "b": 2, }         ← vejica za zadnjim elementom
{ "a": 1 "b": 2 }           ← manjkajoča vejica
{ "a": 1 // komentar }      ← komentarji niso dovoljeni

Večina sporočil »Unexpected token« je ena od teh napak. Preverjevalnik ali oblikovalnik JSON-a vam pokaže točno vrstico.

Praktičen primer: JSON skozi aplikacijo

Stranka v aplikaciji za salon rezervira striženje. Tukaj se JSON pojavi:

  1. Obrazec za rezervacijo pošlje zaledju aplikacije:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
  1. Zaledje rezervacijo shrani v bazo podatkov in odgovori s statusom 201 Created ter:
{ "id": 5001, "status": "confirmed" }
  1. Če je termin že zaseden, lahko namesto tega odgovori s statusom 409 Conflict in:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }

Stran prebere status ali error in prikaže pravo sporočilo. Če bi namesto tega prikazala prazen zaslon, bi vam odpiranje razvijalskih orodij brskalnika (zavihek Network) pokazalo ta JSON — pogosto najhitrejši namig, kaj je šlo narobe.

Ključni pojmi

PojemPomen
KljučIme v paru ime/vrednost, na primer "email".
Razčlenjevanje (parse)Pretvorba besedila JSON v podatke, s katerimi lahko program dela.
Serializacija (stringify)Pretvorba podatkov v besedilo JSON za pošiljanje ali shranjevanje.
Tovor (payload)Podatki, poslani v zahtevku ali odgovoru.
ShemaOpis oblike podatkov — katera polja in katere vrste. JSON Schema je standardni način za njen zapis.
JSONBBinarni stolpec JSON v Postgresu, ki ga je mogoče indeksirati in poizvedovati.
NDJSON / JSON LinesEn objekt JSON na vrstico, pogosto za dnevnike in pretakanje.

Pogoste zmote

  • »JSON je JavaScript.« Sintaksa izhaja iz JavaScripta, vendar ni vezan na en jezik; Python, Java, C#, Go in drugi ga vsi berejo.
  • »Števila v narekovajih so v redu.« "35" je niz, ne število. Mešanje povzroča napake, na primer da "35" + "5" postane "355". Denar je pogosto bolje shraniti kot cele cente (3550), da se izognete zaokroževalnim napakam.
  • »JSON je varen, ker so le podatki.« JSON lahko nosi vse, tudi skrivnosti. Ne dajajte API ključev v JSON, ki se pošilja v brskalnik.
  • »Vse dajte v stolpec JSON.« Priročno za prilagodljive dodatke, toda podatke, ki jih iščete, filtrirate ali povezujete, ponavadi sodi v običajne stolpce.
  • »AI vedno vrne veljaven JSON.« Modeli lahko dodajo dodatno besedilo ali pokvarijo obliko. Mnogi ponudniki ponujajo način strukturiranega izhoda; vaša koda mora kljub temu preveriti, kaj je prišlo nazaj.

Kaj zahtevati od svojega graditelja z AI

  • »Pokaži mi primer JSON-a, ki ga vrne ta končna točka.«
  • »Napake vračaj kot JSON s kodo error in človeku berljivim sporočilom message.«
  • »Datume shranjuj kot nize ISO 8601 v UTC in pretvarjaj v lokalni čas šele na zaslonu.«
  • »Cene shranjuj kot cela števila v centih.«
  • »Na strežniku preveri dohodni JSON in zavrni zahteve z manjkajočimi ali napačno tipiziranimi polji.«
  • »Ko kličeš model AI, zahtevaj JSON v tej natančni obliki in ga preveri, preden ga uporabiš.«

JSON v Mythexu

JSON v Mythexu ni treba pisati ročno — opišete, kaj želite, agent pa napiše kodo, ki ga pošilja in bere. Vseeno je koristno, da ga prepoznate: ko se kaj pokvari, prilepitev napake JSON v klepet agentu da natančen namig. Priročnik REST API zaledje v dokumentaciji od začetka zahteva »jasne napake JSON«, recept integracija poljubnega API-ja pa pokriva klice zunanjih storitev. Za širšo sliko glejte REST proti GraphQL in kako odpraviti napake v aplikaciji, zgrajeni z AI.

Vprašanja

Kaj je JSON na preprost način?

JSON (JavaScript Object Notation) je besedilna oblika za zapis strukturiranih podatkov kot imen in vrednosti, na primer "ime": "Lena". Skoraj vsi spletni API-ji ga uporabljajo za izmenjavo podatkov med programi, mnoge aplikacije pa ga uporabljajo za nastavitve in shranjene podatke.

Ali je JSON programski jezik?

Ne. JSON je oblika podatkov, ne jezik. Sam po sebi ne zmore ničesar — samo opisuje podatke. Čeprav izhaja iz JavaScripta, lahko skoraj vsak programski jezik bere in zapisuje JSON.

Kakšna je razlika med JSON-om in JavaScript objektom?

Videti sta podobna, vendar je JSON strožji. V JSON-u morajo biti vsi ključi v dvojnih narekovajih, nizi uporabljajo dvojne narekovaje, komentarjev ni, vejic za zadnjim elementom ni, vrednosti pa so omejene na nize, števila, true, false, null, objekte in sezname.

Zakaj moj JSON pravi, da je neveljaven?

Pogosti vzroki so vejica za zadnjim elementom, enojni narekovaji namesto dvojnih, manjkajoča vejica med elementi, nezaprt oklepaj ali komentar. Prilepite ga v preverjevalnik JSON-a, ki bo pokazal vrstico z napako.

Mythex · Pricing · Zgradite karkoli z AI · Predloge za spletna mesta in aplikacije · Mythex v primerjavi · Slovar pojmov gradnje aplikacij z AI · Brezplačna orodja za gradnjo aplikacij z 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 Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)