Skip to content

Конвертер JSON в схему Zod

Вставьте JSON и мгновенно получите готовую к использованию схему Zod, на 100% в браузере. Правильные z.number().int(), .optional() и .nullable(), плюс тип z.infer. Бесплатно.

Без отслеживания Работает в браузере Бесплатно
Настройки
0 симв.
Вывод Zod
0 строк
Вывод проверен на соответствие семантике разбора Zod v3 и v4 для реальных payload'ов API. — Команда инженеров Go-Tools · Jul 2, 2026

Что такое схема 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. 1

    Вставьте JSON

    Поместите объект JSON, массив или ответ API в поле ввода. Конвертация начинается мгновенно.

  2. 2

    Настройте вывод

    Переименуйте корневую схему и переключайте строку импорта, тип z.infer или ключевое слово export, чтобы соответствовать стилю вашего проекта.

  3. 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 справа вместе с псевдонимом типа z.infer. Нажмите «Скопировать», чтобы получить результат — без загрузки, без аккаунта, без ожидания.
В чём разница между JSON в Zod и JSON Schema в Zod?
Этот инструмент берёт образец значения JSON — ответ API или объект — и выводит схему Zod из его формы. JSON Schema в Zod — другая задача: она преобразует существующий документ JSON Schema в Zod. Если у вас сырые данные, используйте этот инструмент. Если у вас уже есть файл JSON Schema, конвертируйте именно его.
Как получить тип TypeScript из схемы?
Каждый результат включает псевдоним типа z.infer, поэтому вы получаете полностью типизированный Root без ручного написания. Держите схему как единственный источник истины и позвольте TypeScript вывести тип, чтобы они никогда не расходились. Строку z.infer можно отключить в «Настройках», если вам нужна только схема.
Как обрабатываются опциональные и null-поля?
Когда ключ присутствует в части элементов массива, но не во всех, его поле помечается как .optional(). Поле, которое в части образцов равно null, а в других имеет тип, становится .nullable(). Поле, которое всегда только null, становится z.null(). Zod трактует optional и nullable независимо, поэтому схема отражает то, как на самом деле варьируются ваши данные.
Какой числовой тип он генерирует?
Целые числа отображаются на z.number().int(); любое значение с десятичной точкой или экспонентой отображается на z.number(). Если поле смешивает целые и десятичные числа в разных образцах, оно унифицируется к z.number(), чтобы валидация никогда не отклоняла допустимое значение.
Работает ли вывод с Zod 3 и Zod 4?
Да. Сгенерированный код использует общее стабильное подмножество — z.object, z.string, z.number, z.array, z.union, .int, .optional, .nullable и z.infer — которое ведёт себя одинаково в Zod 3 и Zod 4. Просто убедитесь, что пакет zod установлен в вашем проекте.
Как валидировать данные с помощью сгенерированной схемы?
Импортируйте схему и вызовите RootSchema.parse(data), чтобы выбросить исключение при некорректных данных, или RootSchema.safeParse(data), чтобы получить типизированный результат успеха или ошибки без выбрасывания исключения. Это идеально на границах доверия — таких как ответы API, ввод форм и конфигурация окружения.
Как обрабатываются массивы и смешанные типы?
Массив одного типа становится z.array этого типа. Массив объектов сливается ключ за ключом в одну схему элемента. Массив, смешивающий простые типы, становится z.union, а всё более неоднозначное возвращается к z.unknown, чтобы вы могли уточнить это по более богатому образцу.
Приватны и безопасны ли мои данные JSON?
Да. Конвертация происходит на 100% в браузере на JavaScript. Ваш 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% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.