Конвертер JSON в Zod — генератор схем
Преобразуйте JSON в схемы Zod онлайн с вложенными объектами, массивами, optional- и nullable-полями и типами TypeScript z.infer. Бесплатно и приватно в браузере.
🔒 Работает полностью в вашем браузере — ничего не загружаетсяСхемы Zod, сгенерированные из JSON
Типы TypeScript исчезают во время выполнения, поэтому данные из API, формы или localStorage безопасны ровно настолько, насколько безопасен код, который их проверяет. Zod закрывает этот пробел: он проверяет значения по схеме и выводит тип TypeScript из этой же схемы. Этот конвертер JSON в Zod пишет схему за вас: вставьте образец JSON — и каждый объект станет z.object, примитивы будут соответствовать z.string(), z.number() и z.boolean(), массивы станут z.array(...), а вложенные объекты получат собственные именованные схемы, которые повторно используются везде, где встречаются.
Инструмент работает на quicktype, который объединяет все элементы каждого массива перед выводом типов. Поля, встречающиеся лишь в некоторых элементах, помечаются как optional, а значения, которые иногда равны null, — как nullable, так что схема принимает реальные данные, которые вы видели, а не только их первый элемент.
Схемы и выведенные типы вместе
По умолчанию вывод также экспортирует тип TypeScript для каждой схемы через z.infer, давая единый источник истины для валидации и статической типизации. Импортируйте корневую схему и вызовите RootSchema.parse(data), чтобы проверить недоверенное значение и получить типизированный результат, или safeParse, когда хотите обрабатывать ошибки без исключений. Отметьте Schemas only, если предпочитаете объявлять типы в другом месте. Это естественный спутник инструмента JSON в TypeScript, когда нужны гарантии времени выполнения, а не только подсказки на этапе компиляции.
Советы для более строгих схем
Генерируйте из репрезентативного образца с несколькими элементами массива и заполненными необязательными полями. Затем доработайте то, чего образец показать не может: добавьте .email(), .url() или .uuid() к строковым полям, используйте z.enum для полей с фиксированным набором значений, ограничивайте числа через .int() или .min() и решите, следует ли удалять неизвестные ключи или отклонять их через .strict(). Вся генерация происходит локально, так что вы можете безопасно вставлять production-нагрузки.
Как использовать
- Вставьте JSONВставьте ответ API или любой образец JSON либо нажмите Load sample.
- Назовите кореньЗадайте имя корневой схемы и решите, включать ли выведенные типы.
- Скопируйте схемыСкопируйте код TypeScript или скачайте файл .ts и проверяйте данные через schema.parse().
Часто задаваемые вопросы
Что содержится в выводе?
z.infer. Отметьте Schemas only, чтобы пропустить псевдонимы типов.Как обрабатываются optional- и nullable-поля?
.optional() или .nullable(), так что валидация принимает вариации, встречающиеся в реальных данных.На какую версию Zod он ориентирован?
z.object, z.array, z.string и z.number, работающие и в Zod 3, и в Zod 4.