Схемы и типы

Данные из JSON SchemaВоспроизводимые примеры по ограничениям

Задайте количество и seed: каждый экземпляр проходит проверку по схеме.

Данные из JSON Schema

JSON Schema

Созданные экземпляры

Схема и данные обрабатываются в этом браузере без отправки.

Параметры генерации

Каждая запись отдельно соответствует входной схеме.

Проверьте схему и запустите генерацию.

Данные из JSON Schema помогают подготовить фикстуры, когда контракт API уже описан. Укажите обязательные поля и допустимые значения вместо копирования производственных записей с реальными пользователями.

Этот генератор тестовых данных создаёт синтетические образцы JSON. Схема описывает каждый экземпляр, а количество задаёт внешнюю коллекцию. Названия полей не устанавливают зависимости между адресом, именем или другими значениями.

Зачем нужны Данные из JSON Schema

Повторить сбой

Храните схему, seed и параметры вместе с фикстурой. Одна версия движка воспроизводит тот же набор. Такие Mock-данные позволяют обсуждать конкретный сбой теста, даже если рабочие записи приложения уже изменились.

Один seed создаёт две совпадающие группы синтетических записей.

Проверить допустимые края

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

Допустимые граничные значения проходят проверку, неподдерживаемые ограничения останавливаются.

Подготовьте воспроизводимый случай

01

Не путайте записи и элементы

Начальные значения: 5 записей и seed 42. Если корневая схема задаёт массив, каждый образец также будет массивом. Его внутренний размер задают minItems и maxItems в схеме. Seed — целое число от 0 до 4294967295.

02

Запускайте после изменений

Выберите обычный режим или границы, затем Создать либо Ctrl/Cmd+Enter. Изменение ввода или параметров сразу отключает экспорт старого результата. Остановка отменяет работу; старый поток не может перезаписать новый результат.

03

Сначала прочитайте отчёт

Исправьте указанные пути и повторите генерацию. Пример и Очистить показывают предварительную замену перед применением с одной отменой. JSONL сохраняет полный экземпляр в каждой строке.

Как учитываются ограничения

Вложенные структуры

properties, required и additionalProperties определяют объекты. Отсутствующее необязательное поле отличается от присутствующего null: схема поля должна отдельно разрешать это значение.

Пересечение правил

Списки type, enum и const действуют одновременно с соседними ограничениями. Число из enum не подходит, если превышает maximum той же схемы.

Уникальность внутри массива

uniqueItems относится к отдельному массиву, а не ко всем записям пакета. Ограничения длины строк, числа элементов и свойств также влияют на генерацию.

Два представления файла

JSON всегда добавляет внешний массив, даже для одной записи. В JSONL каждая строка содержит самостоятельное значение JSON: объект, массив или примитив. Схема проверяет экземпляры, а не дополнительную оболочку экспорта. JSON использует фиксированный отступ в два пробела, JSONL оставляет каждый экземпляр на одной строке.

Область поддержки и лимиты

Явное подмножество draft-07
Поддерживаются булевы схемы, списки type, enum, const, properties, required, additionalProperties, одинарная схема items, uniqueItems, размеры и включающие либо исключающие числовые границы. Задавайте type явно: отдельные ограничения сами по себе могут допускать другой тип.
Неподдерживаемые правила отклоняются
Ссылки, комбинации, условия, pattern, format, multipleOf, кортежные items и неизвестные ключевые слова перечисляются с путями. Литеральные объекты внутри enum и const остаются данными, их ключи не считаются правилами схемы.
Границы без полного перебора
Режим создаёт допустимые примеры, не внедряет ошибки и не перебирает все края и комбинации. Для узкого множества значений разные seed могут приводить к одинаковому результату.
Ограниченный объём работы
От 1 до 100 записей. Схема: до 100000 символов, глубина AST 12 и 2000 узлов, включая контейнеры properties и enum. Созданные строки: до 1000 кодовых единиц UTF-16; массивы и объекты: до 100 элементов. Также ограничены попытки, операции и время потока в пять секунд. Общий бюджет: 20000 операций и 1000000 символов вывода. Лимиты строк и коллекций действуют также для const и enum. Seed должен быть целым числом от 0 до 4294967295.
Сбой не доказывает отсутствие решения
Противоречивые правила, нехватка уникальных значений или исчерпанный бюджет могут помешать генерации. Превышение бюджета не означает, что у схемы математически нет допустимого экземпляра.
Только синтетические значения
Нет базы имён, региональных наборов, связей между полями, размещённого Mock API, загрузки URL и облачного хранения. Числа вне поддерживаемой точности отклоняются, а не округляются незаметно. Числа должны быть конечными, целые — входить в безопасный диапазон JavaScript. При преобразовании числового токена в Number и обратно в текст десятичное значение должно сохраняться.

Данные из JSON Schema: вопросы

Какие версии JSON Schema поддерживаются?

Принимается описанное подмножество draft-07. Другие версии, ссылки и неподдерживаемые ключевые слова явно отклоняются, а не интерпретируются как приблизительно совместимые.

Чем генерация отличается от валидации?

Валидация проверяет существующий документ. Данные из JSON Schema работают в обратном направлении: создают новые экземпляры по контракту, после чего каждый экземпляр отдельно проходит проверку.

Как получить несколько записей в массиве?

Выберите от 1 до 100 записей. JSON всегда возвращает массив экземпляров, даже при количестве 1. Размер внутренних массивов определяется схемой, а не этим параметром.

Всегда ли данные соответствуют схеме?

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

Отправляется ли схема на сервер?

Нет. Разбор, генерация и проверка выполняются в загруженном браузере. Схема не отправляется в API, внешние ссылки не загружаются.

Какое ещё ограничение вам нужно?

Попробуйте Данные из JSON Schema

Используйте Данные из JSON Schema сначала для небольшого контракта, затем сравните обычные и граничные образцы с ожиданиями теста.

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