К содержанию
Checkcraft
Практика в Checkcraft

Обязательные и лишние поля JSON без кода

Ответ выглядит знакомо, но в нём исчезла сумма или появился служебный debug. Сравнение только статуса запроса таких изменений не заметит.

Подготовлено командой Checkcraft · Обновлено

Что получится

Один учебный тест проверяет status, числовой amount и разрешённые имена полей. На испорченном примере он обнаруживает неверное значение amount и лишний debug.

Результат реального запуска. Список разрешённых полей и правила значений работают в одном тест-кейсе.
Результат реального запуска. Список разрешённых полей и правила значений работают в одном тест-кейсе. Полный размер ↗

Проверить обязательные значения

Для вставленного JSON добавьте «Поле JSON/источника логов». Поле status должно равняться OK и иметь тип is_string. Поле amount должно быть не меньше 0 и иметь тип is_integer. Если обязательного поля нет, соответствующая проверка должна завершиться ошибкой.

{"status":"OK","amount":100}

Запретить лишние поля

Добавьте «JSON Whitelist», выберите источник current и укажите правило ниже. Оно разрешает только status и amount в текущем корневом объекте. Whitelist не заменяет проверки обязательности. Если все оставшиеся поля разрешены, одно лишь отсутствие amount не нарушает белый список.

root: status, amount
Настоящая форма JSON Whitelist с правилом для текущего объекта.
Настоящая форма JSON Whitelist с правилом для текущего объекта. Полный размер ↗

Проверить правило на двух дефектах

Во втором примере amount превратился в текст, а debug не входит в контракт. Импортируемый тест сохраняет обе проверки. Сравните сообщения с ожидаемым поведением, затем отдельно удалите amount из правильного примера и повторите прогон.

{"status":"OK","amount":"oops","debug":true}

Работать с вложенной структурой

Для поля внутри объекта используйте его путь, например payment.amount. Белый список задаётся для структуры, а проверки значений для конкретных полей. Начните с одного вложенного объекта и проверьте результат на намеренно лишнем поле. Для массива правила каждого объекта нужно поместить в ForEach.

Не замораживать весь ответ

Дата, идентификатор и служебные значения могут изменяться законно. Проверяйте их по требованиям, а не копируйте целиком один успешный ответ как вечный эталон. AI может предложить правила по примеру, но обязательность и допустимые дополнительные поля должны исходить из контракта.

Повторить на готовых данных

Здесь лежит учебный тест-кейс для Checkcraft, правильный JSON и вариант с намеренной ошибкой. Файлы доступны без регистрации. Это данные для упражнения, а не доступ к чужому API.

Если приложение уже открыто

Создайте коллекцию, конструктор проверки и тест-кейс через контекстное меню дерева. В редакторе нажмите «Импорт» и выберите файл тест-кейса. Откройте добавленный тест. Скопируйте содержимое правильного JSON и нажмите «Вставить данные для анализа». Затем «Запустить тест-кейс» и вкладку «Результат».

Повторите те же действия с испорченным JSON, сохранив правила. В первом запуске ожидается успешная проверка, во втором ошибка. Если результат отличается, сравните импортированный тест, источник данных и текст отчёта.

Сверить с полученными при подготовке страницы отчётами можно по файлам успешного прогона и прогона с ошибкой. Примеры проверены 14 сентября 2026 года на текущем исходном коде приложения.

От примера к своей проверке

Посмотреть, как это работает на ваших данных

Можно начать с учебного файла на этой странице, увидеть найденную ошибку и затем заменить данные своим обезличенным примером. Для Windows и Linux доступна Free (beta) без ограничения срока.

Получить Free (beta)Как получить и запустить приложение

Для получения сборки нужен аккаунт и подтверждение email. Состав бесплатной версии опубликован на странице тарифов.