CRM роботы 2.0 + AI (300+ роботов)

Проверить JSON по ограниченной схеме

Робот «Проверить JSON по ограниченной схеме» проверяет обязательные поля, типы и границы значений перед следующим шагом процесса.

Настройки робота «Проверить JSON по ограниченной схеме» в Битрикс24

Видимая часть формы настройки в Битрикс24. Скриншот показывает поля действия; он не подтверждает выполнение учебного примера.

Для кого и какую задачу решает

Автору процесса обмена данными, который хочет проверить обязательные поля и допустимые значения до создания документов или передачи информации следующему действию.

Корректный синтаксис JSON не гарантирует нужную структуру. Например, количество может оказаться строкой или обязательный артикул отсутствовать. Робот сравнивает данные с явной ограниченной схемой и возвращает ошибки с путями, чтобы их можно было исправить до продолжения процесса.

Параметры и подготовка

Поле Как заполнить
Данные JSON (JSON) Обязательное поле
Схема JSON (SCHEMA) Обязательное поле

Перед настройкой выберите, откуда процесс получит каждое значение: постоянная настройка, поле карточки или результат предыдущего шага. Подписи в таблице соответствуют полям робота. Коды в скобках помогают различать похожие параметры при передаче данных между шагами.

Как использовать

  1. Укажите документ в «Данные JSON», а требования к нему в «Схема JSON». В каждом узле схемы задайте один type.
  2. Опишите поля в properties, обязательные имена перечислите в required. Если лишние поля запрещены, задайте additionalProperties:false; по умолчанию они разрешены.
  3. Для чисел задайте границы, для строк длину, для списков размер и схему items. Используйте только поддерживаемые свойства схемы.
  4. Сначала проверьте статус выполнения, затем «Соответствует схеме». При отрицательном признаке исправляйте данные по списку ошибок, не продолжая зависимые действия.

Как заполнить JSON-поля

Данные JSON (JSON)

{
  "qty": 2
}

Проверяемый документ; допустимый тип задаётся схемой.

Приведён пример JSON-объекта. Для исходного документа допустимость массива [] или скалярного значения определяется выбранной операцией и схемой; этот пример не ограничивает все возможные входы объектами.

Схема JSON (SCHEMA)

{
  "type": "object",
  "properties": {
    "qty": {
      "type": "integer",
      "minimum": 1
    }
  },
  "required": [
    "qty"
  ],
  "additionalProperties": false
}

В каждом узле обязателен type. required перечисляет имена обязательных полей; дополнительные поля по умолчанию разрешены. Пустая схема {} недопустима.

Это объект с именованными полями. Не заменяйте его массивом []. Имена полей и их регистр должны совпасть с приведённым форматом.

Учебный пример и ожидаемый результат

Данные {"qty":2}, схема {"type":"object","properties":{"qty":{"type":"integer","minimum":1}},"required":["qty"],"additionalProperties":false}. Ожидается успешное соответствие. Для {"qty":0} проверка выполнится, но соответствие будет отрицательным и появится ошибка границы количества.

Пример показывает подготовленные учебные данные. Фактический результат зависит от переданных значений и доступных данных вашего процесса.

Что возвращает и как продолжить процесс

  • «Соответствует схеме» (valid).
  • «Ошибки с путями, JSON» (errorsJson).
  • «Список ошибок ограничен» (errorsTruncated).
  • «Проверенные данные JSON» (documentJson).

Отрицательное valid означает несоответствие данных требованиям и допускается при успешном общем статусе. «Список ошибок ограничен» предупреждает, что показаны не все найденные проблемы. «Проверенные данные JSON» возвращает исходные данные в JSON-представлении, а не автоматически исправленный документ.

Выход «Статус выполнения» проверяйте перед передачей результата дальше. При отрицательном статусе прочитайте «Пояснение ошибки» и направьте процесс на исправление исходных данных. Успешный статус подтверждает выполнение действия; содержательные признаки результата проверяйте отдельно.

Ограничения и разбор ошибок

Принимает JSON и явную схему. Поддерживаются type, properties, required, additionalProperties, items, enum, minimum/maximum, min/maxLength и min/maxItems. В каждом узле обязателен один type; дополнительные поля по умолчанию разрешены. Ссылки, регулярные выражения и составные схемы не поддерживаются. JSON до 1 МБ; схема до 1000 узлов и 16 уровней; проверка до 25000 узлов. Возвращает до 100 ошибок с путями. Несоответствие данных: успешная проверка с valid=N.

Полная спецификация JSON Schema не поддерживается: ссылки, регулярные выражения и составные схемы использовать нельзя. Не оставляйте проверку только на статусе выполнения: иначе документ, не прошедший содержательные требования, может попасть в следующий шаг. Поддерживаются семь типов: object, array, string, number, integer, boolean, null. Для всех допустим enum: непустой массив из 1–50 уникальных значений. У object доступны properties, required и additionalProperties (только true/false); у array items, minItems, maxItems; у string minLength/maxLength; у number/integer minimum/maximum числовыми JSON-значениями. Для boolean и null дополнительных ограничений кроме enum нет. Длины и размеры задаются целыми от нуля, нижняя граница не выше верхней. properties содержит до 50 полей, required до 50 уникальных имён. Данные могут быть массивом или скаляром, если это соответствует type схемы.