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-ებთან.