JSON to Zod

Generate Zod schemas from JSON

Параметры схемы

Экспортируется как const. Выведенный тип экспортируется как Root.

Исходный JSON

Ограничения: 5 MiB на файл или 5 242 880 символов, 256 уровней вложенности.

Схема Zod

Проверяются все элементы массивов: разные типы превращаются в z.union(...), а ключи, отсутствующие в части объектов, — в .optional(). Считайте результат отправной точкой и уточните его форматами, enum или ограничениями.

Что делает JSON to Zod

JSON to Zod превращает пример JSON в схему Zod для проверки данных во время выполнения в TypeScript. Сначала JSON выводится в независимое от библиотеки дерево схемы, а затем генерируется код Zod: строки, числа, логические значения, null, вложенные объекты, массивы и массивы объектов. Скачиваемый файл — готовый модуль .ts с import { z } from "zod", экспортируемой схемой и типом, построенным через z.infer.

Как пользоваться
  1. 1.Вставьте пример JSON, загрузите файл .json, перетащите его в редактор или загрузите пример.
  2. 2.Задайте имя корневой схемы, например UserSchema; экспортируемый тип будет называться User.
  3. 3.Просмотрите сгенерированный код и предупреждения о неопределённых типах.
  4. 4.Скопируйте код или скачайте его как файл .ts. «Очистить» очищает редактор.
Как выводятся типы
  • •Проверяются все элементы массива, а не только первый. Элементы разных видов превращаются в z.union([...]).
  • •Объекты в одном массиве объединяются: ключ, которого нет в части объектов, становится .optional(), а ключ, иногда равный null, — объединением с z.null().
  • •Пустой массив не даёт сведений, поэтому его элементы — z.unknown(), и показывается предупреждение.
  • •Значение, которое всегда равно null, остаётся z.null() с предупреждением: настоящий тип по примеру определить нельзя.
  • •Ключи всегда берутся в кавычки, поэтому имена вроде "user-id" или "__proto__" обрабатываются безопасно.
Ограничения и точность

Пример показывает, как данные выглядели однажды, а не полный контракт. Добавьте форматы (email, url, datetime), enum, min/max или .strict() сами, если ваш API это гарантирует. Целые числа за пределами безопасного диапазона JavaScript помечаются, поскольку при разборе теряют точность. Ввод ограничен 5 MiB и 256 уровнями вложенности, а вся обработка выполняется в браузере.

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools