Gwida għall-Iskema JSON
Qabel ma nidħlu fl-Iskema JSON, huwa importanti li tkun taf id-differenza bejn l-Iskema JSON u JSON.
JSON
JSON huwa qasir għal JavaScript Object Notation, u huwa format tad-dejta indipendenti mill-lingwa li l-APIs jużaw biex jibagħtu talbiet u tweġibiet. JSON huwa sempliċi biex jinqara u jikteb kemm għan-nies kif ukoll għall-magni. JSON huwa format ibbażat fuq it-test li mhuwiex marbut mal-lingwa (indipendenti mil-lingwa).
Skema JSON
JSON Schema hija għodda utli għall-verifika tal-istruttura tad-dejta JSON. Biex tispeċifika l-istruttura ta' JSON, uża format ibbażat fuq JSON. L-iskop tiegħu huwa li jiżgura li d-dejta JSON tkun aċċettabbli. Il-konvenzjoni għad-dejta JSON tal-applikazzjoni tagħna tista' tiġi definita bl-użu ta' schema.
Hemm tliet taqsimiet ewlenin għall-ispeċifikazzjoni tal-Iskema JSON:
JSON Hyper-Skema:
JSON Hyper-Schema hija lingwa tal-Iskema JSON li tista' tintuża biex tittikkettja dokumenti JSON b'hyperlinks u struzzjonijiet għall-ipproċessar u t-tibdil ta' riżorsi JSON esterni permezz ta' ambjenti bbażati fuq it-test bħal HTTP. Ikklikkja hawn biex titgħallem aktar dwar JSON Hyper-Schema.
Qofol tal-Iskema JSON:
Huwa sett ta 'regoli għall-ittikkettar u l-validazzjoni ta' dokumenti JSON.
Qofol tal-Iskema JSON:
- Jiddeskrivi l-format tad-dejta li għandek bħalissa.
- Jivvalida d-dejta li tista' tintuża fl-ittestjar awtomatizzat.
- Tiżgura l-eżattezza tad-dejta mogħtija mill-klijenti.
- Jipprovdi dokumentazzjoni li tinqara kemm għall-bnedmin kif ukoll għall-magni.
Validazzjoni tal-Iskema JSON:
Il-validazzjoni bbażata fuq Skema JSON timponi limiti fuq l-istruttura tad-dejta tal-istanza. Wara dan, kwalunkwe kliem ewlieni li ma jkollux affermazzjoni informazzjoni, bħal metadejta deskrittiva u indikazzjonijiet ta' użu, huma miżjuda ma' pożizzjoni ta' istanza li tissodisfa r-restrizzjonijiet kollha ddikjarati.
L-għodda JSON Schema Validator ta' Newtonsoft hija għodda li tista' tuża direttament fil-browser tiegħek, mingħajr ħlas. Tista' tuża din l-għodda biex tittestja l-istruttura tal-iskema JSON tiegħek. Din il-paġna fiha kontrolli u spjegazzjonijiet biex tibda. B'dan il-mod, huwa faċli li tara kif ittejjeb l-istruttura JSON tiegħek.
Nistgħu niċċekkjaw l-Oġġett JSON tagħna billi tuża l-Għodda tal-Validazzjoni tal-Iskema JSON:
Għandna validazzjoni tal-età (minimu = 20 u massimu = 40) kif muri fil-figura ta 'hawn fuq. Ma nstabu l-ebda żbalji.
Hija wriet żball jekk il-validazzjoni tal-età kienet imdaħħla ħażin.
Il-Ħolqien Ta Skema JSON
Ejja nħarsu lejn eżempju ta 'JSON Schema biex naraw dak li qed nitkellmu. Oġġett JSON bażiku li jiddeskrivi katalgu tal-prodott huwa kif ġej:
L-Iskema JSON tagħha tista' tinkiteb kif ġej:
Skema JSON hija dokument JSON, u dak id-dokument GĦANDU jkun oġġett. Il-kliem kjavi huma membri/attributi tal-oġġett speċifikati mill-Iskema JSON. "Kliem ewlenin" fl-Iskema JSON jirreferu għall-parti "ċavetta" ta 'kombinazzjoni ċavetta/valur f'oġġett. Il-kitba ta 'Skema JSON tinvolvi l-immappjar ta' "kelma prinċipali" partikolari għal valur fi ħdan oġġett fil-biċċa l-kbira.
Ejja nagħtu ħarsa aktar mill-qrib lejn il-kliem kjavi li użajna fl-eżempju tagħna:
L-iskema JSON li tikkonforma magħha l-iskema tar-riżors hija miktuba b'dan l-attribut. Din l-iskema hija miktuba wara l-istandard tal-abbozzi v4, kif speċifikat mill-“$ skema” keyword. Dan jipprevjeni l-iskema tiegħek milli taqa 'lura għall-verżjoni attwali, li tista' jew ma tistax tkun kompatibbli ma 'l-anzjani.
Il-"titolu"U"deskrizzjoni” keywords huma biss spjegattivi; ma jimponu l-ebda limitazzjoni fuq id-dejta li tkun qed tiġi vverifikata. Dawn iż-żewġ kliem prinċipali jiddeskrivu l-iskop tal-iskema: jiddeskrivi prodott.
Il-"tip” keyword tiddefinixxi l-ewwel kundizzjoni tal-konfini tad-data JSON tagħna; għandu jkun Oġġett JSON. Jekk ma nissettjawx it-tip għall-iskemi kollha, il-kodiċi ma jaħdimx. Xi tipi komuni huma "numru" "Boolean" "integer" "null" "oġġett" "array" "string".
L-Iskema JSON hija appoġġjata mil-libreriji li ġejjin:
lingwa | Librerija |
C | WJElement |
Python | jschon |
PHP | Informazzjoni Json Schema |
JavaScript | ajv |
Go | gojsonschema |
Kotlin | Medea-validator |
Ruby | JSONSchemer |
JSON (Sintassi)
Ejja nagħtu ħarsa qasira lejn is-sintassi fundamentali ta 'JSON. Is-sintassi JSON hija subsett tas-sintassi JavaScript li tinkludi l-elementi li ġejjin:
- Jintużaw pari isem/valur li jirrappreżentaw id-dejta.
- L-oġġetti jinżammu f'ċingi kaboċċi, u kull isem huwa mmexxi minn ':' (kolon), b'pari ta' valuri separati b'“,” (virgola).
- Il-valuri huma separati b'“,” (virgola) u l-arrays jinżammu f'parentesi kwadri.
Iż-żewġ strutturi tad-dejta li ġejjin huma appoġġjati minn JSON:
- Lista ordnata ta' valuri: Jista 'jkun firxa, lista, jew vettur.
- Ġbir ta' pari isem/valur: Lingwi tal-kompjuter differenti jappoġġaw din l-Istruttura tad-Dejta.
JSON (Oġġett)
Skema JSON hija oġġett JSON li jiddeskrivi t-tip u l-istruttura ta 'oġġett JSON differenti. Espressjoni ta' oġġett JavaScript tista' tirrappreżenta oġġett JSON f'ambjenti ta' runtime JavaScript. Xi eżempji ta 'oġġetti schema validi huma kif ġej:
Skema | Sulfarini |
{} | kwalunkwe valur |
{ tip: 'oġġett' } | oġġett JavaScript |
{ tip: 'numru'} | numru JavaScript |
{ tip: 'string'} | string JavaScript |
Eż:
Nagħmlu oġġett ġdid li huwa vojt:
var JSON_Obj = {};
Ħolqien ta' Oġġett Ġdid:
var JSON_Obj = oġġett ġdid ()
JSON (Tqabbil ma' XML)
JSON u XML huma formati indipendenti mill-lingwa li jinqraw mill-bniedem. F'xenarji tad-dinja reali, it-tnejn jistgħu joħolqu, jaqraw u jiddekodifikaw. Ibbażat fuq il-kriterji li ġejjin, nistgħu nqabblu JSON ma 'XML.
Kumplessità
Minħabba li XML huwa aktar kumpless minn JSON, il-programmaturi jippreferu JSON.
Użu ta' Arrays
XML jintuża biex jesprimi data strutturata; madankollu, XML ma jappoġġjax arrays, iżda JSON jagħmel.
Parsing
JSON huwa interpretat bl-użu tal-funzjoni eval ta' JavaScript. eval jirritorna l-oġġett deskritt meta jintuża ma' JSON.
Eżempju:
JSON | XML |
{
“kumpanija”: Ferrari, “isem”: “GTS”, “prezz”: 404000 } |
Ferrari GTS 404000 |
Vantaġġi tal-Iskema JSON
JSON huwa ddisinjat biex jiddevja f'lingwa li tinqara mill-bniedem u mill-magni. Madankollu, mingħajr xi rfinar, jista 'jkun la. JSON Schema għandha l-vantaġġ li tagħmel JSON aktar jinftiehem kemm għall-magni kif ukoll għall-bnedmin.
L-użu tal-Iskema JSON ineħħi wkoll il-ħtieġa għal diversi aġġornamenti min-naħa tal-klijent. Li tagħmel lista ta' kodiċijiet HTML komuni u mbagħad timplimentahom fuq in-naħa tal-klijent huwa metodu tipiku iżda mhux preċiż biex jinbena min-naħa tal-klijent API apps. Madankollu, din mhix l-akbar strateġija minħabba li bidliet fuq in-naħa tas-server jistgħu jikkawżaw ċerti funzjonalitajiet biex jaħdmu ħażin.
Il-vantaġġ ewlieni ta 'JSON Schema huwa l-kompatibilità tagħha ma' varjetà ta 'lingwi ta' programmar, kif ukoll l-eżattezza u l-konsistenza tal-validazzjoni.
L-iskema JSON tappoġġja firxa wiesgħa ta 'browsers u sistemi operattivi, għalhekk apps miktuba f'JSON ma jieħdux ħafna sforz biex jagħmluhom kollha kompatibbli bil-browser. Matul l-iżvilupp, l-iżviluppaturi jikkunsidraw diversi browsers, għalkemm JSON diġà għandu l-kapaċitajiet.
JSON huwa l-aktar mod effiċjenti biex taqsam dejta ta' kwalunkwe daqs, inkluż awdjo, vidjo, u midja oħra. Dan huwa dovut għall-fatt li JSON jaħżen id-dejta f'arrays, li jagħmel it-trażmissjoni tad-dejta aktar faċli. Bħala riżultat, JSON huwa l-aħjar format tal-fajl għall-APIs u l-iżvilupp onlajn.
Hekk kif l-APIs jikbru aktar komuni, huwa loġiku li wieħed jassumi li l-validazzjoni u l-ittestjar tal-API se jsiru dejjem aktar importanti. Huwa wkoll realistiku li wieħed jistenna li JSON mhux probabbli li jsir ħafna aktar sempliċi hekk kif jgħaddi ż-żmien. Dan jimplika li li jkollok skema għad-dejta tiegħek se tikber biss aktar kritika aktar ma jgħaddi ż-żmien. Minħabba li JSON huwa l-format tal-fajl standard biex taħdem ma 'APIs, JSON Schema hija sostitut tajjeb għal dawk li jaħdmu ma' APIs.