Reikalavimas: DI didelių modelių eroje įvairios pramonės šakos diegia DI, kad padėtų mums analizuoti duomenis. Kai kurios iš jų kviečiamos per programavimo kalbas. Norime, kad DI dideli modeliai generuotų JSON struktūruotus duomenis. Kaip galime patikrinti, ar DI modelių JSON eilutės atitinka mūsų objektinio programavimo metodo apibrėžtus tipus?
JsonSchema.Net
Kartais gali prireikti patikrinti, ar JSON objektas yra tinkamai suformatuotas (su tinkamais rakto ir reikšmių tipais), arba galite norėti pridėti komentarų prie duomenų. Čia praverčia JSON schema. Panašiai kaip XML schema, JSON schema apibrėžia JSON duomenų šabloną. JSON schemos validatorius gali patikrinti, ar tam tikras JSON objektas atitinka JSON schemos reikalavimus, ir suteikia programai papildomos informacijos apie duomenis. Šis vertinimas gali būti parengiamasis žingsnis prieš deserializaciją ir yra labai naudingas.
Šaltinis:Hipersaito prisijungimas matomas. Dokumentacija:Hipersaito prisijungimas matomas.
Šiuo metu žinomos šešios JSON schemos specifikacijos versijos:
- 3-iasis draftas
- 4-asis draftas
- 6-asis draftas
- 7-asis juodraštis
- 2019–09 metų naujokų birža
- 2020–12 metų naujokų birža
JSON schemos komanda rekomenduoja naudoti 7 juodraštį arba 2020–2012 m. JsonSchema.Net palaikyti 6-ąjį juodraštį ir vėlesnius.
Pagrindinė pamoka
Apibrėžiame objektą asmeniui, tada sugeneruojame schemą. Kodas yra toks:
Išvestis yra tokia:
{ "tipas": [ "objektas", "null" ], "savybės": { "Vardas": { "tipas": [ "styga", "null" ] }, "El. paštas": { "tipas": [ "styga", "null" ] }, "Amžius": { "tipas": "sveikasis skaičius" }, "Adresas": { "tipas": [ "masyvas", "null" ], "daiktai": { "tipas": [ "objektas", "null" ], "ypatybės": { "Vieta": { "tipas": [ "styga", "null" ] }, "Pašto kodas": { "tipas": "sveikasis skaičius" } }, "Privaloma": [ "Vieta", "Pašto kodas" ] } } }, "Privaloma": [ "Vardas", "El. paštas", "Amžius", "Adresas" ]
} Naudokite JsonSchema, kad patikrintumėte, ar JSON eilutė atitinka objekto struktūrą. Kodas yra toks:
Kaip parodyta žemiau:
Naudojant statytojo šabloną, kodas yra toks:
(Pabaiga) |