Mi az a JSON? Egyszerű útmutató példákkal
A JSON (JavaScript Object Notation) egy egyszerű szöveges formátum strukturált adatok leírására — például egy ügyfél, egy rendelés vagy egy termékek listája — névvel párosított értékekként. Az embereknek könnyű olvasni, a programoknak pedig könnyű előállítani és feldolgozni. Amikor az alkalmazások és szolgáltatások adatot cserélnek a weben, a JSON messze a leggyakoribb formátum.
Miért fontos a JSON AI-val építve
A JSON-nal folyamatosan találkozol, még akkor is, ha soha nem írsz kódot:
- API-k. Amikor az alkalmazásod képernyői adatot töltenek be a háttérrendszerből, vagy a háttérrendszered fizetési, e-mail- vagy AI-szolgáltatást hív, az adat általában JSON-ként utazik. Lásd: mi az API.
- Beállítófájlok. Sok projekt konfigurációs fájlja JSON — például a
package.json, amely egy JavaScript-projekt függőségeit sorolja fel. - Adatbázisok. A Postgres tud JSON-t tárolni egy oszlopban (a
jsonbtípus) olyan adatokhoz, amelyek nem illeszkednek szabályos sorokba és oszlopokba. Lásd: mi a Postgres. - AI-kimenet. Ha azt szeretnéd, hogy egy AI-modell olyasmit adjon vissza, amit egy program fel tud használni — például címkék listáját vagy kinyert számlamezőket —, általában JSON-t kérsz.
- Hibaüzenetek és naplók. Sok hiba JSON-ként érkezik, és ezek elolvasása gyakran a leggyorsabb módja annak, hogy kiderüljön, mi romlott el.
A JSON olvasásának tudásával ellenőrizheted, mit kapott ténylegesen az alkalmazásod, észreveheted a hiányzó mezőt, és pontosan leírhatod a problémákat az AI-építődnek.
Hétköznapi hasonlat
Gondolj egy papíros űrlapra: Név: ____, Telefon: ____, Hírlevél: ☐ igen ☐ nem. Minden bejegyzés egy címke, mellette az értékkel. A JSON ez az űrlap szövegként leírva, szigorú elrendezésben, amelyet a számítógép találgatás nélkül olvas. És mint az űrlapoknál, a JSON-ban lehetnek egymásba ágyazott részek (egy címblokk utcával, várossal és irányítószámmal) és listák (több telefonszám).
Hogyan néz ki a JSON
Íme egy foglalás JSON-ban:
{
"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"
}
}
Olvasása:
- A kapcsos zárójelek
{ }egy objektumot fognak közre — név/érték párok halmazát. - Minden pár
"név": értékalakú, vesszővel elválasztva. - A szögletes zárójelek
[ ]egy tömböt fognak közre — sorrendezett listát. - Az objektumok és tömbök egymásban is állhatnak, ahogy a
contactés azextrasteszi.
A hatféle érték
A JSON-nak csak hatféle értéktípusa van. Ez a kis lista nagyban hozzájárul ahhoz, hogy mindenhol működik.
| Típus | Példa | Megjegyzés |
|---|---|---|
| String (szöveg) | "Lena Park" | Mindig dupla idézőjel |
| Szám | 35.5, -2, 1e6 | Nincs idézőjel; nincs pénznemszimbólum |
| Logikai | true, false | Kisbetűs, nincs idézőjel |
| Null | null | „Nincs érték” |
| Objektum | { "city": "Leeds" } | Nevesített értékek |
| Tömb | [1, 2, 3] | Sorrendezett lista; az elemek bármilyen típusúak lehetnek |
Nincs dátumtípus. A dátumokat szövegként írják, általában a fent látható ISO 8601 formátumban (2026-10-03T14:00:00Z, ahol a Z UTC-t jelent). Ezen formátum egyeztetése a időzóna-hibák egész kategóriáját kiküszöböli.
A szigorú szabályok (innen származnak a hibák)
A JSON kevésbé elnéző, mint amilyennek látszik. Ezek mind érvénytelenek:
{ name: "Lena" } ← kulcs dupla idézőjel nélkül
{ 'name': 'Lena' } ← egyszeres idézőjel
{ "a": 1, "b": 2, } ← záró vessző
{ "a": 1 "b": 2 } ← hiányzó vessző
{ "a": 1 // comment } ← a komment nem megengedett
A legtöbb „Unexpected token” hiba ezek egyike. Egy JSON-validátor vagy -formázó megmutatja a pontos sort.
Példa: JSON egy alkalmazáson keresztül
Egy ügyfél fodrászatot foglal egy szalonalkalmazásban. Így jelenik meg itt a JSON:
- A foglalási űrlap ezt küldi az alkalmazás háttérrendszerének:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
- A háttérrendszer elmenti a foglalást az adatbázisba, és
201 Createdállapottal válaszol, ezzel:
{ "id": 5001, "status": "confirmed" }
- Ha az időpont már foglalt volt,
409 Conflictállapottal és ezzel válaszolhat:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }
Az oldal beolvassa a status vagy error mezőt, és a megfelelő üzenetet jeleníti meg. Ha az oldal ehelyett üres képernyőt mutatna, a böngésző fejlesztői eszközeinek megnyitása (Network fül) megmutatná ezt a JSON-t — ez gyakran a leggyorsabb támpont arra, mi romlott el.
Kulcsfogalmak
| Fogalom | Jelentés |
|---|---|
| Kulcs | A név egy név/érték párban, például "email". |
| Parse (elemzés) | A JSON-szöveg átalakítása olyan adattá, amelyet a program fel tud használni. |
| Szerializálás / stringify | Adat átalakítása JSON-szöveggé küldéshez vagy tároláshoz. |
| Payload (tartalom) | Egy kérésben vagy válaszban küldött adat. |
| Séma (schema) | Leírás arról, milyen alakú az adat — mely mezők, milyen típusok. A JSON Schema egy szabványos módja ennek megírásához. |
| JSONB | A Postgres bináris JSON-oszloptípusa, amelyre index építhető, és amely lekérdezhető. |
| NDJSON / JSON Lines | Soronként egy JSON-objektum, gyakori naplóknál és streamelésnél. |
Gyakori tévhitek
- „A JSON JavaScript.” A JavaScript szintaxisából származik, de nyelvfüggetlen; a Python, a Java, a C#, a Go és a többi mind olvassa.
- „Az idézőjelbe tett számok rendben vannak.” A
"35"szöveg, nem szám. Ha keverik őket, hibák keletkeznek, például a"35" + "5""355"lesz. A pénz gyakran jobb egész centként tárolni (3550), hogy elkerüljük a kerekítési problémákat. - „A JSON biztonságos, mert csak adat.” A JSON bármit hordozhat, beleértve a titkokat is. Ne tegyél API-kulcsot olyan JSON-ba, amelyet a böngészőnek küldesz.
- „Tegyünk mindent egy JSON-oszlopba.” Rugalmas extrákhoz kényelmes, de az adatot, amelyre keresel, szűrsz vagy illesztesz, általában megfelelő oszlopokba kell tenni.
- „Az AI mindig érvényes JSON-t ad vissza.” A modellek extra szöveget fűzhetnek a válaszhoz, vagy eltörhetik a formátumot. Sok szolgáltató kínál strukturált kimeneti módot; a kódodnak akkor is ellenőriznie kell, ami visszajön.
Mit kérj az AI-építődtől
- „Mutass egy példát a JSON-ra, amelyet ez a végpont visszaad.”
- „Az hibákat JSON-ként add vissza,
errorkóddal és emberi olvasásra szántmessagemezővel.” - „A dátumokat ISO 8601 szövegként tárold UTC-ben, és csak a képernyőn alakítsd helyi időre.”
- „Az árakat egész centként tárold.”
- „Validáld a bejövő JSON-t a szerveren, és utasítsd el a hiányzó vagy rossz típusú mezőket tartalmazó kéréseket.”
- „Amikor hívod az AI-modellt, kérj JSON-t pontosan ebben az alakban, és ellenőrizd, mielőtt felhasználod.”
JSON a Mythexben
A Mythexben nem kell kézzel JSON-t írnod — leírod, mit szeretnél, az ügynök pedig megírja a kódot, amely küldi és olvassa. Mégis hasznos felismerni: ha valami elromlik, a JSON-hibát bemásolva a csevegésbe az ügynök pontos támpontot kap. A dokumentáció REST API backend receptje kezdettől fogva „világos JSON-hibákat” kér, a bármilyen API integrálása recept pedig a külső szolgáltatások hívását tárgyalja. A nagyobb képhez lásd: REST vs GraphQL és hogyan hibakeressünk AI-val épített alkalmazásban.
Kérdések
Mi a JSON egyszerűen?
A JSON (JavaScript Object Notation) egy egyszerű szöveges formátum strukturált adatok leírására nevek és értékek formájában, például "name": "Lena". Szinte minden webes API ezzel küldi az adatokat oda-vissza, és sok alkalmazás beállításokhoz és tárolt adatokhoz használja.
A JSON programozási nyelv?
Nem. A JSON adatformátum, nem nyelv. Önmagában nem tud semmit csinálni — csak adatot ír le. Bár a Javaszkriptből származik, gyakorlatilag minden programozási nyelv tudja olvasni és írni.
Mi a különbség a JSON és a JavaScript-objektum között?
Hasonlóan néznek ki, de a JSON szigorúbb. A JSON-ban minden kulcsot dupla idézőjelbe kell tenni, a szövegek dupla idézőjelet használnak, nincsenek kommentek, nincsenek záró vesszők, és az értékek csak szövegek, számok, true, false, null, objektumok és tömbök lehetnek.
Miért mondja, hogy a JSON-om érvénytelen?
A szokásos okok: vessző az utolsó elem után, egyszeres idézőjel a dupla helyett, hiányzó vessző az elemek között, nem zárt zárójel, vagy komment. Illeszd be egy JSON-validátorba, és az megmutatja a sort.