საიტის ხატულა HailBytes

გზამკვლევი JSON სქემისთვის

JSON სქემა

JSON სქემის სახელმძღვანელო

სანამ JSON სქემაში გადავალთ, მნიშვნელოვანია ვიცოდეთ განსხვავება JSON-სა და JSON Schema-ს შორის.

JSON

JSON არის JavaScript Object Notation-ის შემოკლება და ეს არის ენიდან დამოუკიდებელი მონაცემთა ფორმატი, რომელსაც API იყენებს მოთხოვნებისა და პასუხების გასაგზავნად. JSON მარტივია წასაკითხად და დასაწერად როგორც ადამიანებისთვის, ასევე მანქანებისთვის. JSON არის ტექსტზე დაფუძნებული ფორმატი, რომელიც არ არის დაკავშირებული ენასთან (ენა დამოუკიდებელია).

JSON სქემა

JSON Schema არის სასარგებლო ინსტრუმენტი JSON მონაცემთა სტრუქტურის შესამოწმებლად. JSON-ის სტრუქტურის დასაზუსტებლად გამოიყენეთ JSON-ზე დაფუძნებული ფორმატი. მისი მიზანია უზრუნველყოს JSON მონაცემების მიღება. ჩვენი აპლიკაციის JSON მონაცემების კონვენცია შეიძლება განისაზღვროს სქემის გამოყენებით.

JSON სქემის სპეციფიკაციის სამი ძირითადი განყოფილებაა:

JSON ჰიპერ-სქემა:

JSON Hyper-Schema არის JSON სქემის ენა, რომელიც შეიძლება გამოყენებულ იქნას JSON დოკუმენტების ეტიკეტირების მიზნით ჰიპერბმულებით და ინსტრუქციებით გარე JSON რესურსების დამუშავებისა და შეცვლისთვის ტექსტზე დაფუძნებული გარემოში, როგორიცაა HTTP. დააწკაპუნეთ აქ დაწკაპუნებით რომ შეიტყოთ მეტი JSON Hyper-Schema-ს შესახებ.

JSON სქემის ბირთვი:

ეს არის წესების ნაკრები JSON დოკუმენტების ეტიკეტირებისა და დამოწმებისთვის. 

JSON სქემის ბირთვი:

JSON სქემის დადასტურება:

JSON სქემაზე დაფუძნებული ვალიდაცია აწესებს შეზღუდვებს ინსტანციის მონაცემების სტრუქტურაზე. ამის შემდეგ, ნებისმიერი საკვანძო სიტყვა, რომელსაც არ აქვს მტკიცება ინფორმაცია, როგორიცაა აღწერითი მეტამონაცემები და გამოყენების ჩვენებები, ემატება ინსტანციის პოზიციას, რომელიც აკმაყოფილებს ყველა დეკლარირებულ შეზღუდვას. 

Newtonsoft-ის JSON Schema Validator ინსტრუმენტი არის ინსტრუმენტი, რომელიც შეგიძლიათ გამოიყენოთ პირდაპირ თქვენს ბრაუზერში, უფასოდ. თქვენ შეგიძლიათ გამოიყენოთ ეს ინსტრუმენტი თქვენი JSON სქემის სტრუქტურის შესამოწმებლად. ეს გვერდი შეიცავს კონტროლს და ახსნა-განმარტებებს, რათა დაიწყოთ. ამ გზით, ადვილია იმის დანახვა, თუ როგორ გააუმჯობესოთ თქვენი JSON სტრუქტურა.

ჩვენ შეგვიძლია შევამოწმოთ ჩვენი JSON ობიექტი JSON Schema Validation Tool-ის გამოყენებით:


ჩვენ გვაქვს ასაკობრივი დადასტურება (მინიმუმი = 20 და მაქსიმალური = 40), როგორც ნაჩვენებია ზემოთ მოცემულ ფიგურაში. შეცდომები არ იყო ნაპოვნი.

ის აჩვენებს შეცდომას, თუ ასაკობრივი ვალიდაცია არასწორად იყო შეყვანილი.

JSON სქემის შექმნა

მოდით შევხედოთ JSON Schema-ს მაგალითს, რომ ნახოთ რაზე ვსაუბრობთ. ძირითადი JSON ობიექტი, რომელიც აღწერს პროდუქტის კატალოგს, შემდეგია:

მისი JSON სქემა შეიძლება დაიწეროს შემდეგნაირად:

JSON სქემა არის JSON დოკუმენტი და ეს დოკუმენტი უნდა იყოს ობიექტი. საკვანძო სიტყვები არის JSON სქემის მიერ მითითებული ობიექტის წევრები/ატრიბუტები. JSON სქემაში „საკვანძო სიტყვები“ ეხება ობიექტში გასაღების/მნიშვნელობის კომბინაციის „გასაღების“ ნაწილს. JSON სქემის დაწერა გულისხმობს კონკრეტული „საკვანძო სიტყვის“ დახატვას ობიექტში არსებულ მნიშვნელობაზე უმეტესწილად. 

მოდით უფრო ახლოს მივხედოთ საკვანძო სიტყვებს, რომლებიც ჩვენს მაგალითში გამოვიყენეთ: 

JSON სქემა, რომელსაც შეესაბამება რესურსის სქემა, ჩამოწერილია ამ ატრიბუტით. ეს სქემა დაწერილია drafts v4 სტანდარტის მიხედვით, როგორც მითითებულია "$ სქემა”საკვანძო სიტყვა. ეს ხელს უშლის თქვენი სქემის მიმდინარე ვერსიაზე დაბრუნებას, რომელიც შეიძლება იყოს ან არ იყოს თავსებადი ძველთან.

"სათაური"და"აღწერა” საკვანძო სიტყვები მხოლოდ განმარტებითი ხასიათისაა; ისინი არ აწესებენ რაიმე შეზღუდვას შემოწმებულ მონაცემებზე. ეს ორი საკვანძო სიტყვა აღწერს სქემის მიზანს: ის აღწერს პროდუქტს.

"ტიპი” საკვანძო სიტყვა განსაზღვრავს ჩვენი JSON მონაცემების პირველ სასაზღვრო მდგომარეობას; ეს უნდა იყოს JSON ობიექტი. თუ ჩვენ არ დავაყენებთ ტიპს ყველა სქემისთვის, კოდი არ იმუშავებს. ზოგიერთი გავრცელებული ტიპია "რიცხვი", "ლოგიკური", "მთლიანი", "ნული", "ობიექტი", "მასივი" "სტრიქონი".

JSON Schema მხარდაჭერილია შემდეგი ბიბლიოთეკებით:

ენა ბიბლიოთეკა
C WJElement
Python jschon
PHP Opis Json სქემა
JavaScript ajv
Go გოჯსონსქემა
კოტლინი მედეია-ვალიდიატორი
Ruby JSONSchemer

JSON (სინტაქსი)

მოდით მოკლედ გადავხედოთ JSON-ის ფუნდამენტურ სინტაქსს. JSON სინტაქსი არის JavaScript სინტაქსის ქვეჯგუფი, რომელიც მოიცავს შემდეგ ელემენტებს:

შემდეგი ორი მონაცემთა სტრუქტურა მხარს უჭერს JSON:

JSON (ობიექტი)

JSON სქემა არის JSON ობიექტი, რომელიც ასახავს სხვა JSON ობიექტის ტიპსა და სტრუქტურას. JavaScript ობიექტის გამოხატულება შეიძლება წარმოადგენდეს JSON ობიექტს JavaScript გაშვების გარემოში. მოქმედი სქემის ობიექტების რამდენიმე მაგალითი შემდეგია:

Schema მატჩები
{} ნებისმიერი ღირებულება
{type: 'ობიექტი' } JavaScript ობიექტი
{type: 'ნომერი' } JavaScript ნომერი
{type: 'string'} JavaScript სტრიქონი

Მაგალითად:

ახალი ობიექტის შექმნა, რომელიც ცარიელია:

var JSON_Obj = {};

ახალი ობიექტის შექმნა:

var JSON_Obj = ახალი ობიექტი()

JSON (შედარება XML-თან)

JSON და XML არის ენიდან დამოუკიდებელი ადამიანის წაკითხვადი ფორმატები. რეალურ სამყაროში არსებულ სცენარებში მათ შეუძლიათ შექმნან, წაიკითხონ და გაშიფრონ. შემდეგი კრიტერიუმებიდან გამომდინარე, ჩვენ შეგვიძლია შევადაროთ JSON XML-ს.

სირთულე

იმის გამო, რომ XML უფრო რთულია ვიდრე JSON, პროგრამისტები უპირატესობას ანიჭებენ JSON-ს.

მასივების გამოყენება

XML გამოიყენება სტრუქტურირებული მონაცემების გამოსახატავად; თუმცა, XML არ უჭერს მხარს მასივებს, მაგრამ JSON აქვს.

დამუშავება

JSON ინტერპრეტირებულია JavaScript-ის შეფასების ფუნქციის გამოყენებით. eval აბრუნებს აღწერილ ობიექტს JSON-თან გამოყენებისას.

მაგალითი:

JSON XML
{

   "კომპანია": Ferrari,

   "სახელი": "GTS",

   "ფასი": 404000

}

 

ფერარი 

GTS 

404000 

JSON სქემის უპირატესობები

JSON შექმნილია ადამიანისა და მანქანით წაკითხვადი ენაზე გადახრის მიზნით. თუმცა, გარკვეული დაზუსტების გარეშე, ეს არც შეიძლება იყოს. JSON Schema-ს აქვს უპირატესობა, რომ JSON უფრო გასაგები გახადოს როგორც მანქანებისთვის, ასევე ადამიანებისთვის.

JSON Schema-ს გამოყენება ასევე ხსნის კლიენტის მხრიდან რამდენიმე განახლების საჭიროებას. ჩვეულებრივი HTML კოდების სიის შედგენა და შემდეგ მათი დანერგვა კლიენტის მხარეს არის ტიპიური, მაგრამ არაზუსტი მეთოდი კლიენტის მხარეს შესაქმნელად. API აპლიკაციები. თუმცა, ეს არ არის საუკეთესო სტრატეგია, რადგან სერვერის მხარეს ცვლილებებმა შეიძლება გამოიწვიოს გარკვეული ფუნქციების გაუმართაობა.

JSON Schema-ს მთავარი უპირატესობა არის მისი თავსებადობა პროგრამირების მრავალფეროვან ენასთან, ასევე ვალიდაციის სიზუსტე და თანმიმდევრულობა.

JSON სქემა მხარს უჭერს ბრაუზერების ფართო სპექტრს და ოპერატიული სისტემა, შესაბამისად, JSON-ში დაწერილი აპები დიდ ძალისხმევას არ მოითხოვს, რათა ისინი ყველა ბრაუზერში იყოს თავსებადი. განვითარების დროს დეველოპერები განიხილავენ რამდენიმე ბრაუზერს, თუმცა JSON-ს უკვე აქვს შესაძლებლობები.

JSON არის ყველაზე ეფექტური გზა ნებისმიერი ზომის მონაცემების გასაზიარებლად, მათ შორის აუდიო, ვიდეო და სხვა მედია. ეს გამოწვეულია იმით, რომ JSON ინახავს მონაცემებს მასივებში, რაც აადვილებს მონაცემთა გადაცემას. შედეგად, JSON არის საუკეთესო ფაილის ფორმატი ონლაინ API-ებისთვის და განვითარებისთვის.

რაც უფრო გავრცელდება API-ები, ლოგიკურია ვივარაუდოთ, რომ API ვალიდაცია და ტესტირება სულ უფრო მნიშვნელოვანი გახდება. ასევე რეალისტურია იმის მოლოდინი, რომ JSON არ იქნება ბევრად უფრო მარტივი, რაც დრო გადის. ეს გულისხმობს, რომ თქვენი მონაცემებისთვის სქემის არსებობა დროთა განმავლობაში უფრო კრიტიკული გახდება. იმის გამო, რომ JSON არის სტანდარტული ფაილის ფორმატი API-ებთან მუშაობისთვის, JSON Schema კარგი შემცვლელია მათთვის, ვინც მუშაობს API-ებთან.

მობილური ვერსიიდან გასვლა