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,
}
]