Útmutató a JSON-sémához
Mielőtt belemennénk a JSON-sémába, fontos tudni, hogy mi a különbség a JSON és a JSON-séma között.
JSON
A JSON a JavaScript Object Notation rövidítése, és ez egy nyelvtől független adatformátum, amelyet az API-k használnak kérések és válaszok küldésére. A JSON egyszerűen olvasható és írható emberek és gépek számára egyaránt. A JSON egy szövegalapú formátum, amely nincs nyelvhez kötve (nyelvfüggetlen).
JSON-séma
A JSON-séma hasznos eszköz a JSON-adatstruktúra ellenőrzésére. A JSON szerkezetének megadásához használjon JSON-alapú formátumot. Célja annak biztosítása, hogy a JSON-adatok elfogadhatók legyenek. Az alkalmazásunk JSON-adataira vonatkozó megállapodás séma segítségével határozható meg.
A JSON-séma specifikáció három fő szakaszból áll:
JSON hiperséma:
A JSON Hyper-Schema egy JSON-sémanyelv, amely a JSON-dokumentumok hiperhivatkozásokkal és utasításokkal címkézésére használható a külső JSON-erőforrások szövegalapú környezeteken, például HTTP-n keresztüli feldolgozásához és módosításához. Kattintson itt hogy többet tudjon meg a JSON Hyper-Sémáról.
JSON séma mag:
Ez a JSON-dokumentumok címkézésére és érvényesítésére vonatkozó szabályok készlete.
JSON séma mag:
- Leírja az aktuális adatformátumot.
- Érvényesíti az automatizált teszteléshez használható adatokat.
- Az ügyfelek által megadott adatok pontosságának biztosítása.
- Emberek és gépek számára egyaránt olvasható dokumentációt biztosít.
JSON-séma ellenőrzése:
A JSON-sémán alapuló érvényesítés korlátokat szab a példányadatok szerkezetének. Ezt követően minden olyan kulcsszó, amely nem érvényesít információ, mint például a leíró metaadatok és a használati jelzések, hozzáadásra kerülnek egy olyan példánypozícióhoz, amely megfelel az összes deklarált megszorításnak.
A Newtonsoft JSON Schema Validator eszköze egy olyan eszköz, amelyet közvetlenül a böngészőjében használhat, ingyenesen. Ezzel az eszközzel tesztelheti a JSON-séma szerkezetét. Ez az oldal vezérlőket és magyarázatokat tartalmaz a kezdéshez. Így könnyen belátható, hogyan javíthatja a JSON-struktúrát.
A JSON-objektumunkat a JSON-séma-ellenőrző eszközzel ellenőrizhetjük:
A fenti ábrán látható módon érvényesítjük az életkort (minimum = 20 és maximum = 40). Nem találtunk hibát.
Hibaüzenetet jelentetett meg, ha az életkor érvényesítése helytelenül lett megadva.
A JSON-séma létrehozása
Nézzünk egy példát a JSON-sémára, hogy lássuk, miről beszélünk. A termékkatalógust leíró alapvető JSON-objektum a következő:
A JSON-séma a következőképpen írható:
A JSON-séma egy JSON-dokumentum, és ennek a dokumentumnak objektumnak KELL lennie. A kulcsszavak a JSON-séma által meghatározott objektumtagok/attribútumok. A JSON-séma „kulcsszavai” egy kulcs/érték kombináció „kulcs” részére utalnak egy objektumban. A JSON-séma írása legtöbbször egy adott „kulcsszó” hozzárendelését jelenti egy objektumon belüli értékhez.
Nézzük meg közelebbről a példánkban használt kulcsszavakat:
Az attribútum írja le azt a JSON-sémát, amelynek az erőforrás sémája megfelel. Ez a séma a vázlatok v4 szabvány szerint készült, ahogy azt a „$ séma” kulcsszó. Ez megakadályozza, hogy a séma visszaálljon a jelenlegi verzióra, amely lehet, hogy kompatibilis a régebbi verziókkal.
Azcím"És"leírás” a kulcsszavak csak magyarázó jellegűek; nem szabnak semmilyen korlátozást az ellenőrzött adatokra vonatkozóan. Ez a két kulcsszó írja le a séma célját: egy terméket ír le.
Aztípus” kulcsszó határozza meg a JSON-adataink első határfeltételét; JSON-objektumnak kell lennie. Ha nem állítunk be minden sémához típust, a kód nem működne. Néhány elterjedt típus: „szám”, „logikai” „egész”, „null”, „objektum”, „tömb” „karakterlánc”.
A JSON-sémát a következő könyvtárak támogatják:
Nyelv | könyvtár |
C | WJElement |
Piton | jschon |
PHP | Opis Json Schema |
JavaScript | ajv |
Go | gojsonschema |
Kotlin | Médeia-validátor |
Rubin | JSONSchemer |
JSON (szintaxis)
Vessünk egy rövid pillantást a JSON alapvető szintaxisára. A JSON szintaxis a JavaScript szintaxis egy részhalmaza, amely a következő elemeket tartalmazza:
- A név/érték párok az adatokat reprezentálják.
- Az objektumok kapcsos zárójelben vannak, és minden nevet egy „:” (kettőspont) vezet, az értékpárokat pedig „,” (vessző) választja el.
- Az értékeket „,” (vessző) választja el, a tömbök pedig szögletes zárójelben vannak.
A következő két adatszerkezetet támogatja a JSON:
- Rendezett értéklista: Ez lehet tömb, lista vagy vektor.
- Név/érték párok gyűjteménye: Különböző számítógépes nyelvek támogatják ezt az adatstruktúrát.
JSON (objektum)
A JSON-séma egy JSON-objektum, amely felvázolja egy másik JSON-objektum típusát és szerkezetét. A JavaScript objektumkifejezés egy JSON-objektumot képviselhet JavaScript futási környezetekben. Néhány példa érvényes sémaobjektumokra:
Séma | Gyufa |
{} | bármilyen értéket |
{ type: 'objektum' } | egy JavaScript objektum |
{ type: 'number' } | egy JavaScript számot |
{ type: 'string'} | egy JavaScript karakterlánc |
Például:
Új objektum létrehozása üresen:
var JSON_Obj = {};
Új objektum létrehozása:
var JSON_Obj = új objektum()
JSON (összehasonlítás XML-lel)
A JSON és az XML nyelvtől független, ember által olvasható formátumok. Valós forgatókönyvekben egyaránt létrehozhatnak, olvashatnak és dekódolhatnak. A következő kritériumok alapján összehasonlíthatjuk a JSON-t az XML-lel.
Bonyolultság
Mivel az XML összetettebb, mint a JSON, a programozók előnyben részesítik a JSON-t.
Tömbök használata
Az XML-t a strukturált adatok kifejezésére használják; az XML azonban nem támogatja a tömböket, de a JSON igen.
nyelvtani elemzés
A JSON értelmezése a JavaScript eval függvénye segítségével történik. Az eval a leírt objektumot adja vissza, ha JSON-nal használják.
Példa:
JSON | XML |
{ „cég”: Ferrari, "név": "GTS", „ár”: 404000 } |
Ferrari
GTS
404000
|
JSON-séma előnyei
A JSON-t úgy tervezték, hogy eltérítsen egy ember és gép által olvasható nyelven. Azonban némi finomhangolás nélkül egyik sem lehet. A JSON-séma előnye, hogy a JSON-t érthetőbbé teszi mind a gépek, mind az emberek számára.
A JSON-séma használatával több ügyféloldali frissítés sem szükséges. A gyakori HTML kódok listája készítése, majd azok kliensoldali implementálása tipikus, de pontatlan módszer a kliensoldali összeállításhoz. API alkalmazásokat. Ez azonban nem a legjobb stratégia, mert a szerveroldali változtatások bizonyos funkciók hibás működését okozhatják.
A JSON-séma fő előnye a különféle programozási nyelvekkel való kompatibilitása, valamint az érvényesítés pontossága és következetessége.
A JSON-séma a böngészők széles skáláját támogatja és operációs rendszer, ezért a JSON-ban írt alkalmazásoknak nem kell sok erőfeszítésbe kerülniük, hogy mindegyik böngészőkompatibilis legyen. A fejlesztés során a fejlesztők több böngészőt is figyelembe vesznek, bár a JSON már rendelkezik a lehetőségekkel.
A JSON a leghatékonyabb módja bármilyen méretű adatok megosztásának, beleértve a hang-, videó- és egyéb médiát. Ez annak köszönhető, hogy a JSON tömbökben tárolja az adatokat, ami megkönnyíti az adatátvitelt. Ennek eredményeként a JSON a legjobb fájlformátum az online API-khoz és fejlesztésekhez.
Ahogy az API-k egyre gyakoribbak, logikus feltételezni, hogy az API-ellenőrzés és -teszt egyre fontosabbá válik. Az is reális elvárás, hogy a JSON valószínűleg nem lesz sokkal egyszerűbb az idő múlásával. Ez azt jelenti, hogy az adatok sémája az idő előrehaladtával egyre kritikusabb lesz. Mivel a JSON az API-kkal való munka szabványos fájlformátuma, a JSON-séma jó helyettesítője az API-kkal dolgozóknak.