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 з токенами, записи користувачів, внутрішні корисні навантаження — аналізуються та типізуються повністю на вашому пристрої і ніколи не завантажуються нікуди. Вставте приклад, скопіюйте згенеровану схему в свій проект і почніть валідувати те, що ви аналізуєте.