Генератор схем Zod из JSON онлайн
Сгенерируйте схему Zod из образца JSON мгновенно в браузере. Ваш JSON остаётся на устройстве.
Ваш JSON разбирается и преобразуется в схему Zod полностью в вашем браузере, поэтому остаётся на устройстве и ничего не загружается на сервер.
Нужны обычные интерфейсы TypeScript? Попробуйте JSON в TypeScript.
Об инструменте JSON в Zod
Этот конвертер JSON в Zod превращает образец объекта или массива JSON в готовую к использованию схему Zod за секунды. Вставьте реальный ответ API, и он выведет каждое значение: строки становятся z.string(), целые числа становятся z.number().int(), десятичные — z.number(), булевы значения — z.boolean(), а null — z.null(). Массивы становятся z.array() с унифицированной формой элементов, а вложенные объекты превращаются во вложенные вызовы z.object({...}), чтобы схема точно отражала ваши данные. Он создан для разработчиков на TypeScript, которым нужен быстрый генератор схем Zod вместо ручного написания валидаторов, будь то подключение валидации формы, типизация эндпоинта или генерация zod из json при изучении незнакомой структуры данных. Задайте имя корневой схемы и при желании экспортируйте выведенный тип. Всё работает локально в вашем браузере, поэтому вставленный JSON обрабатывается на вашем устройстве и ничего не загружается на сервер.
Возможности
- Генерирует именованную схему Zod из любого объекта или массива JSON
- Выводит z.string(), z.number(), z.boolean() и z.null() из вашего образца
- Распознаёт целые числа и выдаёт для них z.number().int()
- Превращает вложенные объекты во вложенные вызовы z.object({...})
- Оборачивает массивы в z.array() и объединяет смешанные элементы в z.union()
- При желании экспортирует выведенный тип через z.infer<typeof Schema>
- Позволяет переименовать корневую схему и показывает ошибки разбора JSON прямо в потоке
- Копирование схемы или её скачивание в виде файла .ts
Как использовать JSON в Zod
- Вставьте ваш объект или массив JSON в поле ввода.
- Задайте имя схемы или оставьте его как Schema.
- Включите или выключите экспорт выведенного типа под ваши нужды.
- Просмотрите сгенерированную схему Zod, затем скопируйте её или скачайте в виде файла .ts.
Пример
Ввод
{ "id": 1, "name": "Ada", "tags": ["a", "b"] }
Результат
export const Schema = z.object({
id: z.number().int(),
name: z.string(),
tags: z.array(z.string()),
});
Плоский объект JSON становится типизированной схемой z.object.
Частые ошибки и устранение неполадок
- В выводе показан баннер Invalid JSON со строкой и столбцом. — В JSON есть синтаксическая проблема, например замыкающая запятая, одинарные кавычки или ключ без кавычек. Исправьте её в указанной строке и столбце, и схема перегенерируется.
- Поле вышло как z.array(z.unknown()) вместо реального типа элемента. — Этот массив был пустым в вашем образце, поэтому тип элемента вывести не удалось. Включите хотя бы один элемент, и схема выведет z.array() его формы.
- Целое число типизировано как z.number().int(), а вы хотели простой z.number(). — Целые числа распознаются из образца как z.number().int(). Отредактируйте сгенерированную строку до z.number(), если поле может содержать и десятичные.
- Свойство объекта вышло как z.null(). — Каждое образцовое значение для этого ключа было null. Предоставьте образец с реальным значением или сами оберните поле в .nullable(), как только узнаете его конкретный тип.
Часто задаваемые вопросы
- Что делает генератор JSON в Zod?
- Он читает образец объекта или массива JSON и создаёт соответствующую схему Zod на TypeScript, выводя z.string(), z.number(), z.boolean(), z.null(), z.array() или z.object() для каждого значения, чтобы вы могли вставить результат прямо в свою кодовую базу.
- Поддерживает ли он Zod v4?
- Да. Схема использует базовые конструкторы z.string(), z.number(), z.boolean(), z.null(), z.array() и z.object(), которые идентичны в Zod v3 и v4, поэтому вывод работает с любой версией, как только вы импортируете z из zod.
- Как обрабатываются необязательные или nullable-поля?
- Поля, которые в образце равны null, становятся z.null(). Поскольку один образец не может определить, какие ключи необязательны, ничего не помечается .optional() автоматически — добавьте .optional() или .nullable() сами там, где поле может отсутствовать или быть null.
- Как он отличает целые от дробных?
- Целые числа в вашем образце становятся z.number().int(), а числа с дробной частью становятся z.number(). Если поле может содержать оба варианта, измените сгенерированную строку на z.number(), чтобы оно принимало любое.
- Как преобразуются вложенные объекты и массивы?
- Вложенные объекты становятся вложенными вызовами z.object({...}), чтобы схема отражала ваш JSON, а массивы становятся z.array() со схемой элемента внутри. Пустой массив становится z.array(z.unknown()).
- Отправляется ли куда-либо мой JSON при генерации схемы Zod?
- Нет. Преобразование JSON в Zod выполняется полностью в вашем браузере, поэтому вставленные данные обрабатываются локально и никогда не покидают устройство.
Связанные инструменты
Все инструменты ArrayKit