Схема JSON — это спецификация формата на основе JSON для определения структуры данных JSON. Он был написан по проекту IETF, срок действия которого истек в 2011 году. Схема JSON —
- Описывает ваш существующий формат данных.
- Четкая, понятная человеку и машиночитаемая документация.
- Полная структурная проверка, полезная для автоматического тестирования.
- Полная структурная проверка, проверка данных, предоставленных клиентом.
Библиотеки валидации схемы JSON
В настоящее время доступно несколько валидаторов для разных языков программирования. В настоящее время наиболее полным и совместимым валидатором JSON Schema является JSV.
Языки | Библиотеки |
---|---|
С | WJElement (LGPLv3) |
Джава | JSON-схема-валидатор (LGPLv3) |
.СЕТЬ | Json.NET (MIT) |
ActionScript 3 | Фригга (MIT) |
Haskell | Эзон-схема (MIT) |
питон | Jsonschema |
Рубин | автоматический анализ (ASL 2.0); Руби-Джонсхема (MIT) |
PHP | php-json-схема (MIT). JSON-схема (Беркли) |
JavaScript | Упорядоченный (BSD); JSV; JSON-схема; Matic (MIT); Dojo; 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 утверждает, что эта схема написана согласно черновой спецификации v4. |
2 |
заглавие Вы будете использовать это, чтобы дать название вашей схеме. |
3 |
описание Небольшое описание схемы. |
4 |
тип Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON. |
5 |
свойства Определяет различные ключи и их типы значений, минимальные и максимальные значения, которые будут использоваться в файле JSON. |
6 |
требуется Это сохраняет список необходимых свойств. |
7 |
минимальный Это ограничение, накладываемое на значение, и представляет минимально допустимое значение. |
8 |
exclusiveMinimum Если присутствует «exclusiveMinimum» и имеет логическое значение true, экземпляр действителен, если он строго больше значения «минимума». |
9 |
максимальная Это ограничение, которое будет наложено на значение и представляет собой максимально допустимое значение. |
10 |
exclusiveMaximum Если присутствует «exclusiveMaximum» и имеет логическое значение true, экземпляр действителен, если он строго ниже значения «Maximum». |
11 |
multipleOf Числовой экземпляр действителен для «множественного значения», если результатом деления экземпляра по значению этого ключевого слова является целое число. |
12 |
максимальная длина Длина экземпляра строки определяется как максимальное количество ее символов. |
13 |
MINLENGTH Длина экземпляра строки определяется как минимальное количество ее символов. |
14 |
шаблон Экземпляр строки считается допустимым, если регулярное выражение соответствует экземпляру успешно. |
$ схема
Ключевое слово $ schema утверждает, что эта схема написана согласно черновой спецификации v4.
заглавие
Вы будете использовать это, чтобы дать название вашей схеме.
описание
Небольшое описание схемы.
тип
Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON.
свойства
Определяет различные ключи и их типы значений, минимальные и максимальные значения, которые будут использоваться в файле JSON.
требуется
Это сохраняет список необходимых свойств.
минимальный
Это ограничение, накладываемое на значение, и представляет минимально допустимое значение.
exclusiveMinimum
Если присутствует «exclusiveMinimum» и имеет логическое значение true, экземпляр действителен, если он строго больше значения «минимума».
максимальная
Это ограничение, которое будет наложено на значение и представляет собой максимально допустимое значение.
exclusiveMaximum
Если присутствует «exclusiveMaximum» и имеет логическое значение true, экземпляр действителен, если он строго ниже значения «Maximum».
multipleOf
Числовой экземпляр действителен для «множественного значения», если результатом деления экземпляра по значению этого ключевого слова является целое число.
максимальная длина
Длина экземпляра строки определяется как максимальное количество ее символов.
MINLENGTH
Длина экземпляра строки определяется как минимальное количество ее символов.
шаблон
Экземпляр строки считается допустимым, если регулярное выражение соответствует экземпляру успешно.
Вы можете проверить http://json-schema.org для полного списка ключевых слов, которые можно использовать при определении схемы JSON. Приведенную выше схему можно использовать для проверки правильности следующего кода JSON: