Што е JSON? Водич едноставно објаснет, со примери
JSON (JavaScript Object Notation) е едноставен текстуален формат за запишување структурирани податоци — работи како клиент, нарачка или листа на производи — како парови од имиња и вредности. Лесен е за луѓе да го читаат и лесно се создава и се парсира од програми. Кога апликациите и услугите разменуваат податоци преку веб, JSON е далеку најчестиот формат.
Зошто JSON е важен кога градиш со вештачка интелигенција
Ќе се сретнеш со JSON постојано, дури и ако никогаш не пишуваш код:
- API-ја. Кога екраните на твојата апликација вчитуваат податоци од нејзиниот backend, или твојот backend повикува услуга за плаќање, е-пошта или вештачка интелигенција, податоците обично патуваат како JSON. Види што е API.
- Датотеки со поставки. Многу датотеки за конфигурација на проект се JSON — на пример
package.json, што ги наведува зависностите на JavaScript проект. - Бази на податоци. Postgres може да чува JSON во колона (типот
jsonb) за податоци што не се вклопуваат во уредни редови и колони. Види што е Postgres. - Излез од вештачка интелигенција. Кога сакаш AI моделот да врати нешто што програмата може да го користи — листа на ознаки, извадени полиња од фактура — обично бараш JSON.
- Грешки и логови. Многу грешки пристигнуваат како JSON, а нивното читање е често најбрзиот начин да дознаеш што тргнало наопаку.
Да можеш да го читаш JSON значи дека можеш да провериш што навистина ја добила твојата апликација, да забележиш недостасувачко поле и прецизно да ги опишеш проблемите на твојата алатка за изработка со вештачка интелигенција.
Секојдневна аналогија
Замисли папирен формулар: Име: ____, Телефон: ____, Билтен: ☐ да ☐ не. Секој внес е етикета со вредност до неа. JSON е тој формулар запишан како текст, во строг распоред што компјутерот може да го чита без погодување. И како формуларите, JSON може да има делови во деловите (блок со адреса со улица, град и поштенски број) и листи (неколку телефонски броеви).
Како изгледа JSON
Еве една резервација во JSON:
{
"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"
}
}
Како се чита:
- Витестите загради
{ }опкружуваат еден објект — збир од парови име/вредност. - Секој пар е
"name": вредност, одделени со запирки. - Квадратните загради
[ ]опкружуваат една низа — подредена листа. - Објектите и низите можат да бидат ставени еден во друг, како што се
contactиextras.
Шесте видови вредности
JSON има само шест типа вредности. Оваа мала листа е голем дел од причината зошто работи насекаде.
| Тип | Пример | Забелешки |
|---|---|---|
| String (текст) | "Lena Park" | Секогаш двојни наводници |
| Број | 35.5, -2, 1e6 | Без наводници; без симболи за валута |
| Boolean | true, false | Мали букви, без наводници |
| Null | null | „Нема вредност“ |
| Објект | { "city": "Leeds" } | Именувани вредности |
| Низа | [1, 2, 3] | Подредена листа; ставките можат да бидат било кој тип |
Нема тип за датум. Датумите се запишуваат како стрингови, обично во ISO 8601 форматот прикажан погоре (2026-10-03T14:00:00Z, каде Z значи UTC). Договорот за тој формат спречува цела категорија грешки со временски зони.
Строгите правила (од каде доаѓаат грешките)
JSON е помалку попустлив отколку што изгледа. Сите овие се невалидни:
{ name: "Lena" } ← клуч без двојни наводници
{ 'name': 'Lena' } ← еднострани наводници
{ "a": 1, "b": 2, } ← запирка на крајот
{ "a": 1 "b": 2 } ← недостасува запирка
{ "a": 1 // коментар } ← коментари не се дозволени
Веќето грешки „Unexpected token“ што ќе ги видиш се едно од овие. JSON валидаторот или форматерот ќе ти ја покаже точната линија.
Работен пример: JSON низ апликација
Корисник резервира шишање во апликација за салон. Ете каде се појавува JSON:
- Формуларот за резервација го испраќа ова до backend-от на апликацијата:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- Backend-от ја зачувува резервацијата во базата на податоци и одговара со статус
201 Createdи:
{ "id": 5001, "status": "confirmed" }
- Ако терминот веќе бил зафатен, може наместо тоа да одговори со статус
409 Conflictи:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }
Страницата ги чита status или error и ја прикажува вистинската порака. Ако страницата наместо тоа покаже празен екран, отворањето на развојните алатки на прелистувачот (картичката Network) би ти го прикажало овој JSON — често најбрзиот траг за тоа што тргнало наопаку.
Клучни термини
| Термин | Значење |
|---|---|
| Клуч | Името во паро име/вредност, како "email". |
| Parse | Претвори JSON текст во податоци што програмата може да ги користи. |
| Serialize / stringify | Претвори податоци во JSON текст за праќање или чување. |
| Payload | Податоците испратени во барање или одговор. |
| Schema | Опис на обликот што податоците треба да го имаат — кои полиња, кои типови. JSON Schema е стандарден начин да се запише таков опис. |
| JSONB | Бинарна JSON колона во Postgres, што може да се индексира и да се пребарува. |
| NDJSON / JSON Lines | Еден JSON објект по линија, вообичаено за логови и стриминг. |
Чести погрешни претстави
- „JSON е JavaScript.“ Потекнува од синтаксата на JavaScript, но не е врзан за јазик; Python, Java, C#, Go и останатите сите го читаат.
- „Броевите во наводници се во ред.“
"35"е стринг, не број. Мешањето предизвикува грешки, како"35" + "5"да стане"355". Парите често е подобро да се чуваат како цели центи (3550) за да се избегнат проблеми со заокружување. - „JSON е безбеден бидејќи е само податоци.“ JSON може да носи што било, вклучително и тајни. Не става API клучеви во JSON што се испраќа до прелистувачот.
- „Стави сè во JSON колона.“ Практично за флексибилни дополнителни податоци, но податоците по кои пребаруваш, филтрираш или спојуваш обично припаѓаат во вистински колони.
- „Вештачката интелигенција секогаш враќа валиден JSON.“ Моделите можат да додадат дополнителен текст или да го расипат форматот. Многу даватели нудат режим на структуриран излез; твојот код и понатаму треба да проверува што се враќа.
Што да побараш од твојата алатка со вештачка интелигенција
- „Покажи ми пример на JSON што го враќа овој endpoint.“
- „Врати грешки како JSON со код
errorи читлива поракаmessage.“ - „Чувај датуми како ISO 8601 стрингови во UTC и претворај во локално време само на екранот.“
- „Чувај цени како цели центи.“
- „Валидирај го дојдовниот JSON на серверот и одбивај барања со недостасувачки или погрешно типизирани полиња.“
- „Кога го повикуваш AI моделот, побарај JSON во точно овој облик и провери го пред да го користиш.“
JSON во Mythex
Во Mythex не треба рачно да пишуваш JSON — го опишуваш она што го сакаш, а агентот го пишува кодот што го испраќа и го чита. Сепак корисно е да го препознаваш: кога нешто ќе се расипе, залепувањето на JSON грешката во разговорот му дава на агентот прецизен траг. Рецептот REST API backend во документацијата бара „јасни JSON грешки“ од самиот почеток, а рецептот интеграција на кој било API ги опфаќа повикувањата кон надворешни услуги. За поширока слика, види REST vs GraphQL и како да дебагираш апликација изградена со вештачка интелигенција.
Прашања
Што е JSON едноставно речено?
JSON (JavaScript Object Notation) е обичен текстуален формат за запишување структурирани податоци како имиња и вредности, како „name“: „Lena“. Речиси секој веб API го користи за праќање податоци напред-назад, а многу апликации го користат за поставки и зачувани податоци.
Дали JSON е програмски јазик?
Не. JSON е формат за податоци, а не јазик. Сам по себе не може ништо да направи — само опишува податоци. Иако потекнува од JavaScript, практично секој програмски јазик може да го чита и запишува.
Која е разликата помеѓу JSON и JavaScript објект?
Изгледаат слично, но JSON е построг. Во JSON секој клуч мора да биде во двојни наводници, низите се пишуваат со двојни наводници, нема коментари, нема запирки на крајот и вредностите се ограничени на стрингови, броеви, true, false, null, објекти и низи.
Зошто мојот JSON вели дека е невалиден?
Вообичаените причини се запирка по последната ставка, еднострани наводници наместо двојни, недостасувачка запирка помеѓу ставките, незатворена заграда или коментар. Залепи го во JSON валидатор и тој ќе ти покаже на која линија е проблемот.