JSON в схему Zod
Генерируйте Zod-схему валидации и типы TypeScript из примера JSON с автоматическим обнаружением форматов и перечислений.
JSON в схему Zod
Вставьте пример JSON — ответ API, файл конфигурации, строку базы данных — и получите готовую к использованию Zod-схему в TypeScript. Типы выводятся для каждого поля: примитивы отображаются на z.string(), z.number() и z.boolean(), массивы имеют выведённый тип элемента, а значение, которое отличается между вхождениями, становится z.union(). Строка, которая выглядит как адрес электронной почты, URL, UUID или дата ISO, получает соответствующий валидатор — .email(), .url(), .uuid(), .date() или .datetime() — вместо обычного z.string().
Передайте ему массив одинаково сформированных объектов, таких как строки из конечной точки списка, и генератор объединяет каждый элемент перед типизацией поля: ключ, отсутствующий в некоторых строках, становится .optional(), ключ, который иногда равен null, становится .nullable() или .optional() в зависимости от выбранного параметра, а поле, которое повторяет небольшой набор значений — столбец статуса или роли — становится правильным z.enum() вместо открытой строки. Включите «Разделить вложенные объекты», чтобы извлечь каждый вложенный объект в свой собственный именованный экспорт вместо одного глубоко вложенного литерала, где идентичные формы автоматически делят одну схему. Включите «Строгие объекты», чтобы отклонить любой ключ, который образец никогда не показывал, отлавливая опечатки и неожиданные поля API при разборе вместо позже в потоке.
Назовите экспортированную схему так, как ваш код её ожидает, и при необходимости добавьте export type X = z.infer<typeof X> прямо ниже, чтобы валидатор среды выполнения и тип компиляции поступали из одного источника и никогда не могли молча расойтись.
Всё работает локально в вашем браузере. JSON, который вы вставляете — ответы API с токенами, записи пользователей, внутренние полезные нагрузки — анализируется и типизируется полностью на вашем устройстве и никогда не загружается никуда. Вставьте образец, скопируйте созданную схему в свой проект и начните валидировать то, что вы анализируете.