JSON to Zod
Generate Zod schemas from JSON
模式选项
以 const 导出;推断出的类型以 Root 导出。
JSON 输入
限制:每个文件 5 MiB 或 5,242,880 个字符,嵌套 256 层。
Zod 模式
会检查数组中的每个元素:类型不同时生成 z.union(...),部分对象缺少的键会变为 .optional()。请把结果当作起点,再用格式、枚举或范围限制进一步收紧。
JSON to Zod 的功能
JSON to Zod 会把示例 JSON 转换为 Zod 模式,用于 TypeScript 的运行时校验。JSON 会先推断为与库无关的模式树,再输出为 Zod 代码,涵盖字符串、数字、布尔值、null、嵌套对象、数组和对象数组。下载的 .ts 模块可直接导入,包含 import { z } from "zod"、导出的模式,以及用 z.infer 创建的导出类型。
使用方法
- 1.粘贴示例 JSON、上传 .json 文件、将文件拖放到编辑器,或加载示例。
- 2.设置根模式名称,例如 UserSchema;导出的类型将是 User。
- 3.检查生成的代码,以及关于不确定类型的提示。
- 4.复制代码或下载为 .ts 文件。清空会清除编辑器。
类型如何推断
- •会检查数组中的每个元素,而不仅是第一个。类型不同的元素会生成 z.union([...])。
- •同一数组中的对象会被合并:部分对象缺少的键会变为 .optional(),有时为 null 的键会变为与 z.null() 的联合。
- •空数组没有可用信息,因此元素为 z.unknown(),并显示提示。
- •始终为 null 的值会保留为 z.null() 并附带提示,因为无法从示例得知真实类型。
- •键始终加引号,因此 "user-id" 或 "__proto__" 这类名称也能安全处理。
限制与准确性
示例只代表数据某一次的样子,而不是完整契约。如果 API 有保证,请自行添加格式(email、url、datetime)、枚举、min/max 或 .strict()。超出 JavaScript 安全范围的整数会被标记,因为解析时会丢失精度。输入上限为 5 MiB 和 256 层嵌套,所有处理都在您的浏览器中完成。
