JSON - Схема
Схема JSON - это спецификация формата на основе JSON для определения структуры данных JSON. Он был написан в рамках проекта IETF, срок действия которого истек в 2011 году. Схема JSON -
- Описывает ваш существующий формат данных.
- Понятная, понятная и машиночитаемая документация.
- Полная структурная проверка, полезная для автоматизированного тестирования.
- Полная структурная проверка, проверка данных, представленных клиентом.
Библиотеки проверки схемы JSON
В настоящее время доступно несколько валидаторов для разных языков программирования. В настоящее время наиболее полным и совместимым валидатором схемы JSON является JSV.
| Языки | Библиотеки |
|---|---|
| C | WJElement (LGPLv3) |
| Ява | валидатор схемы-json (LGPLv3) |
| .СЕТЬ | Json.NET (Массачусетский технологический институт) |
| ActionScript 3 | Frigga (Массачусетский технологический институт) |
| Haskell | aeson-schema (MIT) |
| Python | Jsonschema |
| Рубин | автопарсинг (ASL 2.0); ruby-jsonschema (Массачусетский технологический институт) |
| PHP | php-json-schema (MIT). json-schema (Беркли) |
| JavaScript | Обычный (BSD); JSV; json-schema; Matic (Массачусетский технологический институт); Додзё; Persevere (модифицированный BSD или AFL 2.0); schema.js. |
Пример схемы JSON
Ниже приведена базовая схема JSON, которая охватывает классическое описание каталога продуктов.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a product",
"type": "integer"
},
"name": {
"description": "Name of the product",
"type": "string"
},
"price": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
"required": ["id", "name", "price"]
}
Давайте проверим различные важные ключевые слова, которые можно использовать в этой схеме -
| Sr. No. | Ключевое слово и описание |
|---|---|
| 1 |
$schema Ключевое слово $ schema указывает, что эта схема написана в соответствии с черновиком спецификации v4. |
| 2 |
title Вы будете использовать это, чтобы дать название своей схеме. |
| 3 |
description Небольшое описание схемы. |
| 4 |
type Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON. |
| 5 |
properties Определяет различные ключи и их типы значений, минимальные и максимальные значения, которые будут использоваться в файле JSON. |
| 6 |
required Здесь хранится список необходимых свойств. |
| 7 |
minimum Это ограничение на значение, которое представляет собой минимально допустимое значение. |
| 8 |
exclusiveMinimum Если "exclusiveMinimum" присутствует и имеет логическое значение "истина", экземпляр действителен, если он строго больше, чем значение "минимума". |
| 9 |
maximum Это ограничение на значение, которое представляет собой максимально допустимое значение. |
| 10 |
exclusiveMaximum Если "exclusiveMaximum" присутствует и имеет логическое значение "истина", экземпляр действителен, если он строго ниже значения "максимум". |
| 11 |
multipleOf Числовой экземпляр действителен для "multipleOf", если результат деления экземпляра на значение этого ключевого слова является целым числом. |
| 12 |
maxLength Длина экземпляра строки определяется как максимальное количество его символов. |
| 13 |
minLength Длина экземпляра строки определяется как минимальное количество его символов. |
| 14 |
pattern Экземпляр строки считается действительным, если регулярное выражение успешно соответствует экземпляру. |
Вы можете проверить http://json-schema.orgдля получения полного списка ключевых слов, которые можно использовать при определении схемы JSON. Вышеупомянутая схема может использоваться для проверки действительности следующего кода JSON -
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]