Конвертер JSON в схему Zod
Вставьте JSON и мгновенно получите готовую к использованию схему Zod, на 100% в браузере. Правильные z.number().int(), .optional() и .nullable(), плюс тип z.infer. Бесплатно.
Настройки
Что такое схема Zod?
Схема Zod — это описание формы значения в духе TypeScript, которое валидирует данные во время выполнения и выводит статический тип во время компиляции. Генерация её из образца JSON означает, что вам никогда не придётся вручную писать шаблонный код валидации для ответов API, форм или конфигурационных файлов. Этот генератор схем Zod выводит правильные типы, помечает отсутствующие ключи как .optional(), значения null как .nullable() и вручает вам тип z.infer — всё на 100% в браузере.
Примеры
Ответ API
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
Типичный payload REST становится готовой к использованию схемой Zod. Целые числа выводятся как z.number().int(), а массив roles становится z.array(z.string()). Тип z.infer вы получаете бесплатно.
Вложенный объект
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
Вложенные объекты становятся отдельной именованной схемой (OwnerSchema), на которую ссылаются поля. Дочерние схемы объявляются перед родителем, который их использует, а одинаковые формы объявляются один раз и переиспользуются.
Массив объектов (опциональное поле)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
Массивы объектов сливаются в одну схему элемента. Ключ, отсутствующий в части элементов, становится .optional(), поэтому разбор по-прежнему успешен, когда его нет.
Поле nullable и унификация чисел
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
Поле, которое в части образцов равно null, а в других имеет тип, становится .nullable(). Поскольку 0.1 содержит десятичную точку, число унифицируется к z.number(), а не z.number().int().
Как конвертировать JSON в Zod
- 1
Вставьте JSON
Поместите объект JSON, массив или ответ API в поле ввода. Конвертация начинается мгновенно.
- 2
Настройте вывод
Переименуйте корневую схему и переключайте строку импорта, тип z.infer или ключевое слово export, чтобы соответствовать стилю вашего проекта.
- 3
Скопируйте или скачайте
Получите сгенерированную схему Zod одним кликом и вставьте её прямо в свой слой валидации.
Common Use Cases
- Валидация ответов API
- Превратите образец ответа REST или GraphQL в схему Zod и разбирайте её на границе запроса, чтобы некорректные данные быстро падали с понятной ошибкой, а не просачивались через приложение.
- Типобезопасные формы и ввод
- Сгенерируйте схему для ввода формы или запроса и переиспользуйте тип z.infer в интерфейсе и обработчиках для сквозной типобезопасности.
- Схемы tRPC и инструментов AI
- Инициализируйте схемы ввода и вывода для процедур tRPC или инструментов AI со структурированным выводом из примера payload, вместо того чтобы писать их вручную.
Как работает конвертация
- Структурный вывод
- Каждый объект становится именованной схемой; одинаковые формы объявляются один раз и переиспользуются. Массивы объектов сливаются ключ за ключом, а ключи, отсутствующие в части элементов, становятся .optional().
- Правильное сопоставление типов
- Целые числа отображаются на z.number().int(), а десятичные на z.number(). Строки, логические значения и null отображаются на z.string(), z.boolean() и z.null(); массив смешанных простых типов становится z.union().
- Типы TypeScript в комплекте
- Псевдоним типа z.infer выдаётся для корневой схемы, поэтому схема остаётся единственным источником истины, а ваши типы никогда не расходятся с валидацией.
- 100% на стороне клиента
- Разбор и генерация выполняются в браузере без сетевых запросов, поэтому ваши данные остаются приватными.
Советы для чистых схем Zod
- Дайте имя корневой схеме
- Задайте осмысленное корневое имя, например User или ApiResponse, вместо стандартного Root для читаемого, самодокументируемого кода.
- Уточняйте z.unknown() и объединения
- Пустые или смешанные массивы дают z.unknown() или широкое z.union(). Вставьте более богатый, представительный образец, чтобы инструмент вывел точные типы, затем ужесточите всё, что остаётся неоднозначным.
- Валидируйте на границе
- Вызывайте safeParse() там, где входят недоверенные данные — ответы API, ввод форм, вебхуки — чтобы плохие данные были перехвачены до того, как достигнут логики приложения.
Часто задаваемые вопросы
Как конвертировать JSON в схему Zod?
В чём разница между JSON в Zod и JSON Schema в Zod?
Как получить тип TypeScript из схемы?
Как обрабатываются опциональные и null-поля?
Какой числовой тип он генерирует?
Работает ли вывод с Zod 3 и Zod 4?
Как валидировать данные с помощью сгенерированной схемы?
Как обрабатываются массивы и смешанные типы?
Приватны и безопасны ли мои данные JSON?
Инструмент бесплатный? Нужен ли аккаунт?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
Конвертер Base64 в изображение
Кодирование и форматирование
Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.
Конвертер CSV в JSON
Кодирование и форматирование
Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.
Конвертер .env в JSON
Кодирование и форматирование
Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.
Бесплатный HTML-декодировщик сущностей — unescape HTML
Кодирование и форматирование
Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.
Бесплатный HTML-кодировщик сущностей — экранирование HTML
Кодирование и форматирование
Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.