JSON + JSON Schema
Last updated
Last updated
JSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript.
Допустимые форматы данных для пары "key":"value" в JSON указаны в карточках ниже:
Основные правила синтаксиса:
Данные записываются в виде пар {“ключ”: значение}.
Данные разделяются запятыми.
В фигурных скобках записываются объекты.
В квадратных скобках записываются массивы.
Наименования «ключей» регистрозависимы.
JSON Schema – это своеобразный язык описания структуры JSON-документации. Базируется на разных концепциях. Выступает в качестве самоописательного языка.
Схема создана для описания JSON-данных, но и сама она при этом является JSON-объектом. С помощью ключевых слов (keywords) в схеме создаются правила валидации структуры объекта и типов его полей.
"$schema"
Используется для задания версии драфта схемы
"$id"
Используется для указания уникального идентификатора документа или его подсхем.
"title" "description" "examples" "comment"
Комментарии к JSON схеме
Тип данных: "type": "string"
minLength maxLength
Длину строки string можно ограничить с помощью ключевых слов minLength и maxLength. Для обоих ключевых слов значение должно быть неотрицательным числом.
pattern
Формат строки string можно ограничивать с помощью ключевого слова pattern. Паттерн задается с помощью регулярного выражения RegEx
Тип данных: "type": "number"
minimum maximum exclusiveMinimum exclusiveMaximum
Диапазон числа number можно ограничивать с помощью ключевых слов.
Если x - это проверяемое значение, то должно выполняться следующее:
x ≥ minimum
x > exclusiveMinimum
x ≤ maximum
x < exclusiveMaximum
multipleOf
Кратность числа number можно ограничивать с помощью multipleOf
Тип данных: "type": "object"
properties
Тип данных объектов object можно ограничивать с помощью properties в котором прописаны ограничения для каждого объекта
patternProperties
Тип данных объектов object можно ограничивать с помощью шаблонов свойств
additionalProperties
Используется для управления обработкой дополнительных элементов, не входящих ни в properties, ни в patternProperties
required
Ограничение на обязательные объекты object
propertyNames
Формат элементов объекта object можно ограничивать с помощью ключевого слова propertyNames. Паттерн задается с помощью регулярного выражения RegEx
minProperties maxProperties
Количество свойств объекта можно ограничить с помощью ключевых слов
Тип данных: "type": "array"
items
Ограничение на тип элементов массива (для всего массива)
prefixItems
Ограничение на тип элементов массива (для каждого конкретного индекса массива)
contains
Ограничение на содержание элемента в массиве
minItems maxItems
Ограничение на длину массива
time
string
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\\\.[0-9]{6})?((-|\\\\+)[0-9]{2}:[0-9]{2})?)?)?$"
Да
Дата и время сообщения
eventId
string (255)
Да
Уникальный идентификатор события
contactID
string (255)
Да
Идентификатор контакта
operationType
string (enum)
Да
Тип операции CREATE, READ, UPDATE, DELETE
getFlag
string (1)
Да
Флаг
phoneNumber
string (50)
pattern: "^([0-9]{10})$"
Да
Номер телефона клиента
phoneNumberTimeZone
string (255)
Да
Таймзона клиента
scenarioId
string (255)
Да
Номер сценария
customAttributeList
Array [Object]
Да
attributeName
string (255)
Да
Идентификатор атрибута cardNum, lockSum, lockCurrency, lockDate
attributeValue
string (255)
Да
Значение атрибута
Источники:
Подробнее про JSON Shema: https://infostart.ru/1c/articles/1546672/