CSS властивості
ГлавнаяJSONСхеми JSON

Схеми JSON

506

Розглянемо наступний JSON-документ.

<code data-language="javascript">{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968" }, { "artistname" : "Joe Satriani", "born" : "1956-07-15" }, { "artistname" : "Maroon 5", "formed" : "1994" } 
] }

У цьому прикладі застосовується різний формат дати об'єктів. Крім того, один об'єкт використовує born (вказує, коли народився виконавець), тоді як інші використовують formed (коли утворилася група /виконавець).

У JSON немає правил, згідно з якими деякі об'єкти повинні використовувати певний тип даних або навіть містити однакові поля. Їм навіть не потрібно утримувати однакове кількість полів. Наприклад, ми можемо додати поле favoritecolor до одного об'єкта, не додаючи його до інших.

Крім того, немає правила, згідно з яким дані мають бути в заданому форматі . Наприклад, поле born може бути представлене будь-яким з наступних способів.

<code data-language="javascript">"born" : "1956" "born" : 1956 "born" : "Липень 15, 1956" "born" : "1956-07-15" "born" : "07/15/1956" "born" : "15/07/1956" "born" : "Я люблю апельсини!" "born" : [ { "albumname" : "Flying in a Blue Dream", "year" : "1989", "genre" : "Інструментальний рок" }, { "albumname" : "The Extremist", "year" : "1992", "genre" : "Інструментальний рок" }, { "albumname" : "Shockwave Supernova", "year" : "2015", "genre" : "Інструментальний рок" } 
] "born" : "Упс!!!"

Так, вірно — «Упс!!!». Ви можете вставити туди що завгодно.

Ця гнучкість є однією з речей, яка робить JSON таким простим у використанні. Але вона одночасно може викликати проблеми, показані вище. Багато програм, які читають JSON-файли, вимагають, щоб дані були у стандартному форматі. Але навіть якщо додатки це прочитають, людям буде важко зрозуміти, якою саме датою є «Я люблю апельсини!». Наприклад, щоб усі дати вводилися у певному форматі, скажімо, РРРР-ММ-ДД. Або переконатися, що користувачі вводять лише число у вікі віку.

Створення схеми

Ви можете застосовувати правила для своїх JSON-файлів, створивши схему, яка дозволяє вказати, який тип даних може додаватися у файли. Також схема може використовуватися для перевірки JSON-файлу, щоб переконатися, що він містить лише правильний тип даних.

Наприклад, ви можете використовувати наступний код, щоб обмежитися лише рядком.

<code data-language="javascript">{ "type": "string" }

Ось приклад базової схеми JSON Schema (взято з json-schema.org) .

<code data-language="javascript">{ "title": "Example Schema", "type": "object", "properties" ;: { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "age": { "description": "Age in years", "type": "integer", "minimum": 0 } 
}, "required": [" "lastName"] }

Можете використовувати цю схему для перевірки правильності введення користувачем імені та віку.

Як бачите, JSON Schema насправді є тим самим JSON. Так що не завжди легко визначити, що перед вами: JSON Schema або звичайний JSON-документ.

Проте, гарною практикою вважається розміщення опису у верхній частині схеми. Тоді опис оголошує, що перед нами схема JSON і він допоможе розпізнати, чи це JSON Schema або просто звичайний JSON-документ.

Щоб оголосити JSON Schema, використовуйте ключове слово $schema.

<code data-language="javascript">{ "$schema": "http://json-schema.org/schema#" ; }

У цьому прикладі оголошується JSON Schema, написана для поточної версії специфікації.

Ви також можете вказати явно, яку версію специфікації використовуєте. У наступному прикладі оголошується JSON Schema, написана для JSON Schema, чернова версія 4.

<code data-language="javascript">{ "$schema": "http ://json-schema.org/draft-04/schema#" }

Для створення JSON Schema ознайомтеся з JSONSchema.net. Це онлайн-інструмент, який автоматично генерує JSON Schema з будь-якого введеного вами JSON. Автор та редактори

Автор: Йєн Діксон
Останнє змінення: 11.10.2019
Редактори: Влад Мержевич