A JavaScript Object Notation (JSON – röviden, és kiejtése hasonlít a „Jason” névhez – egyfajta adatmegosztási formátum. Ahogy a neve is mutatja, a JSON a JavaScript nyelvből ered, de nem ez az egyetlen kódkörnyezet, amely lehetővé teszi a használatát. Valójában sok más programozási nyelvben is használható, beleértve a következőket: Ruby, PHP, Python, és Java.
Önálló formában a JSON-fájl a(z) .json kiterjesztést használja, de mivel ez egy olyan formátum, amely könnyen továbbítható egy webszerver és egy kliens (vagy böngésző) között, .html formátumként is definiálható. Ebben az esetben lehet egy változóhoz rendelt objektum, vagy megjelenhet JSON-karakterláncként idézőjelek között.
A JSON jó alternatívája az XML-nek, mivel olvashatóbb és minimális formázást igényel. Ez az útmutató bemutatja a JSON-fájlokban tárolható adatokat, valamint a formátum általános szintaxisát és szerkezetét.
Szerkezet & szintaxis
A JSON-objektum egy olyan adatformátum, amely kapcsos zárójeleket használ a kulcs-érték párok ábrázolására. Amikor JSON-nal dolgozik, leggyakrabban .json fájlokban fogja látni, de egy program kontextusában karakterláncként vagy JSON-objektumként is létezhet.
Íme egy példa arra, hogyan néz ki egy JSON-objektum:

Bár ez egy meglehetősen rövid példa, és a JSON-objektumok sokkal hosszabbak is lehetnek, pontosan bemutatja, hogyan épül fel általában a formátum: két kapcsos zárójellel a két végén, a köztük lévő helyet pedig kulcs-érték párok töltik ki. A JSON-ban lévő adatok többsége egy JSON-elembe van beágyazva.
A kulcs-érték párokat egy kettőspont választja el egymástól (“kulcs” : “érték”). Ezen párok mindegyikét egy vessző választja el egymástól, mint a lista különböző tagjait. Ez a JSON-formázás középső részét a következő módon eredményezi: “kulcs” : “érték”, “kulcs” : “érték”, “kulcs” : “érték”. A fenti példában például a "name" : "Akshay" az első kulcs-érték pár.
Az egyes objektumok kulcsainak egyedinek kell lenniük, bármilyen érvényes karakterláncként ábrázolhatók, kettős idézőjelbe téve (“kulcs”), és mindig a kettőspont bal oldalán helyezkednek el. Bár a kulcs-karakterláncokban megengedettek a szóközök (például a “first name” formában), ez programozási szempontból nehezebbé teszi a hozzáférést. Emiatt az általánosan elfogadott programozási gyakorlat az, hogy a kulcsokban lévő szóközöket aláhúzásjellel helyettesítik (“first_name”).
A JSON-ban az értékek a kettőspont jobb oldalán találhatók. A legegyszerűbb szinten ezeknek a következő 6 meghatározott adattípus egyikének kell lenniük:
- Számok
- Objektumok
- Tömbök
- Karakterláncok
- Igaz vagy hamis (Boolean)
- Null
A következő szakasz a JSON-objektumtömb összetettebb adattípusaival foglalkozik, ahol a JSON-nak átadott minden érték megőrzi a saját szintaxisát. Más szóval, a karakterláncok továbbra is idézőjelek között jelennek meg, míg a számértékek nem.
A JSON-formátumot a konvenció szerint általában több soros formátumban adják meg. Azonban egyetlen sorba is formázható:

Ez a fajta formázás gyakoribb, ha JSON-karakterlánccal találkozunk, vagy egy másik fájltípuson belül. Hatalmas adathalmazokkal való munka során a kettőspontok és a kulcs-érték párok külön sorokba történő kiírása olvashatóbbá teszi a listát az emberi szem számára, mivel a JSON-ból hiányzik a szóközök elválasztó segítsége:

Bár a JSON-objektum hasonlít a JavaScriptre, fontos észben tartani, hogy ezek különböző formátumok. Míg a JavaScript lehetővé teszi a függvények használatát, a JSON nem. Ami a JSON-t olyan értékessé teszi, az a nyelvek közötti kompatibilitása, amely lehetővé teszi, hogy minden programozási platform értelmezni tudja.
Eddig csak a legegyszerűbb formájában vizsgáltuk a JSON-formátumot, de hierarchikusan és összetettebb módon is fejlődhet, ha beágyazott objektumokat és tömböket tartalmaz. A következő részben a haladóbb JSON-nal fogunk foglalkozni.
Összetett JSON-típusok használata
A beágyazott tömbök mellett a JSON beágyazott objektumokat is képes tárolni. Ezek az objektumok és tömbök a kulcsok értékeiként kerülnek átadásra, és a kulcsokhoz kapcsolódva kulcs-érték párokat alkotnak.
- Beágyazott objektumok létrehozása
A következő users.json fájl kép, minden egyes felhasználóhoz a négy közül egy beágyazott JSON objektum kapcsolódik (“akshay”, “sam”, “Andrew”, “James”). Minden felhasználó saját beágyazott kulcsokkal rendelkezik (“location” és “username”):

A kiemelt rész az első beágyazott objektumra mutat példát. A fenti példában a kapcsos zárójelek egy beágyazott JSON objektum létrehozására szolgálnak, amely tartalmazza a megfelelő felhasználónevet és pozícióadatokat mind a négy felhasználóhoz. Objektumok használatakor vesszőkkel választjuk el az elemeket az adott felhasználói attribútum alapján.
- Beágyazott tömbök létrehozása
Az értékként átadott Javascript tömbök szintén használhatók adatok beágyazására a JSON formátumon belül. Ez a következő használatával történik: [ ] (szögletes zárójelek) a tömbtípusok végén, ahol a tömbök strukturált listák, amelyek egyedi adattípusokat tartalmaznak:

A fenti példák kiemelt részében Akshay’s 2 közösségi média profil oldala és 2 weboldal linkje egy-egy beágyazott információkat tartalmazó tömbben szerepel a szögletes zárójelek jelenléte miatt. A beágyazás ilyen módon történő alkalmazásával a JSON-ban nagyobb rugalmasságot érhetünk el a hierarchikus és összetett adattartalmakkal való munka során.
- XML összehasonlítás
Extensible Markup Language (XML) egy olyan módszert biztosít az adatok tárolására, amely a gépek és az emberek számára egyaránt hozzáférhető. A JSON-hoz hasonlóan az XML-t is számos programozási nyelv használhatja. A JSON-nal ellentétben az XML lényegesen több szöveget tartalmaz, ezért összetettebb és időigényesebb az összeállítása. Míg egy szabványos függvény képes elemezni a JSON-t, az XML-hez XML-specifikus elemzőre van szükség. Ráadásul az XML nem képes tömböket használni. Hasonlítsuk össze ugyanazokat az adatokat XML és JSON formátumban:

Az XML lényegesen több szöveget igényel és több helyet foglal. Záró tageket is igényel, míg a JSON sokkal tömörebb és egyszerűbb elrendezésű. Azok, akik ismerik a HTML-t, valószínűleg észrevehetik a hasonlóságot az XML tag-használatában.
Mielőtt eldöntené, melyik formátumot használja, mindig segít a projekt hatókörének és igényeinek értékelése. A JSON kevésbé szószaporító, karcsúbb, és gyorsan használható AJAX alkalmazásokhoz és egyéb helyzetekben. A projekt típusa segít rávilágítani a legmegfelelőbb adatstruktúrák használatára.
További információk a JSON-ról
A JSON egy sokoldalú és természetes formátum, amely több programozási nyelven is megvalósítható. A támogatott nyelvek teljes listáját megtalálja a “Introducing JSON” oldalon. Emellett az elemzési és kompatibilitási információk megtalálhatók a “iQuery könyvtárban.”
Végül is valószínűleg nem fog túl gyakran tiszta JSON-t írni. Ehelyett adatforrásokból fogja lekérni, vagy más adatfájlokat fog JSON-ra konvertálni. A nyílt forráskódú Mr. Data Converter eszközzel a táblázatkezelő programokban található CSV vagy tabulátorral tagolt adatokat JSON formátumba konvertálhatja. A Creative Commons licencű utilities-online.info platformmal XML-t konvertálhat JSON-ra és fordítva. Automatizált szoftverek használatakor ellenőrizze kétszer is a jelentéseket a redundancia kiküszöbölése érdekében.
Használhatja a JSONLint eszközt is a JSON ellenőrzéséhez, valamint a JFiddle eszközt, hogy webfejlesztési környezetben értékelje ki azt, amikor más típusokat konvertál JSON formátumba.
Összegzés
Az egyre növekvő API támogatásnak köszönhetően (beleértve a Twitter API-t is), a JSON egy könnyűsúlyú adatformátum, amely elősegíti az adatok egyszerű szerkesztését, tárolását és megosztását. Mivel nem saját .json fájlokat fog generálni, hanem inkább más forrásokból kapja azokat, fontosabb azon gondolkodni, hogyan használja a JSON-t a programjaiban, mintsem a szerkezetén.
Íme további források a blogunkról, amelyek segítenek a JavaScript programozásban:
- Ismerje meg, hogyan működnek a prototípusok és az öröklődés a Javascriptben
- Fedezze fel részletesen, hogyan adható hozzá JavaScript a HTML-hez.
- Ha saját webalkalmazást épít, tekintse meg útmutatónkat a legjobb szerverbeállítás kiválasztásáról.
Kellemes kódolást!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.