直接回答
JSON 转 Zod 会根据单个示例中观察到的类型和值推断 schema。 它适合作为草稿,却无法发现未出现的 optional 字段、所有 union 分支或业务约束。
先生成 Zod 基础,再用真实测试完善它。
1
输入 JSON
已载入示例 JSON。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
输出 Zod Schema
1import { z } from "zod";23export const schema = z.object({4user: z.object({5id: z.number().int(),6name: z.string(),7email: z.string().email(),8isActive: z.boolean(),9roles: z.array(z.string()),10profile: z.object({11age: z.number().int(),12address: z.object({13city: z.string(),14zip: z.string(),15}),16}),17lastLogin: z.string().datetime(),18}),19});20export type Schema = z.infer<typeof schema>;21
使用方法
- 粘贴/上传 JSON,或使用受支持的公开示例。
- 设置 Schema 名称、代码样式、unknown keys、optional、description、enum detection 和格式化。
- 检查嵌套类型与约束,测试正反样本后下载
.ts。
主要功能与设置
- 生成嵌套的 Zod object、array 与 scalar schema。
- 可设置名称和代码风格。
- 配置 unknown keys 与 optional 字段。
- 支持 description、enum detection 与格式化 TypeScript 输出。
支持的输入与输出
输入: JSON 文本或文件, 受支持的公开 URL. 输出: .ts.
适用场景
- 为 API 响应快速搭建运行时校验。
- 生成表单或 webhook payload 的基础 schema。
- 让运行时 schema 与 TypeScript model 对齐。
应该选择哪种工作流?
需要“生成嵌套的 Zod object、array 与 scalar schema。 ”时使用 JSON 转 Zod Schema 工具;需要“可生成 interface 或 type alias。 ”时使用 JSON 转 TypeScript 工具。
隐私与数据路径
当前实现中,粘贴/上传内容在浏览器内处理;“Extract from URL”会通过服务器代理获取来源。
限制与故障排查
- 一个 payload 看不到缺失字段、nullable 和所有 union 变体。
- 从单样本推断的 literal/enum 可能过窄,应使用有代表性的真实数据。
- 没有适用于所有设备的通用大小保证;大数据性能取决于浏览器内存和设备能力。
FAQ
生成的 Zod Schema 能直接上线吗?
不建议直接使用。 请用多个有效和无效 payload 测试,并手工补充 optional、nullable、union、范围与业务规则。
数据会上传到服务器吗?
当前实现中,粘贴/上传内容在浏览器内处理;“Extract from URL”会通过服务器代理获取来源。
文件或数据大小有什么限制?
没有适用于所有设备的通用大小保证;大数据性能取决于浏览器内存和设备能力。
可以在手机上使用吗?
该页面是网页工具,可能可在现代移动浏览器中运行,但文件选择、内存占用和跨设备兼容性尚未在所有设备上验证。 较大或复杂输入建议使用桌面浏览器。
应该选择哪种工作流?
需要“生成嵌套的 Zod object、array 与 scalar schema。 ”时使用 JSON 转 Zod Schema 工具;需要“可生成 interface 或 type alias。 ”时使用 JSON 转 TypeScript 工具。
相关工具
JSON 转 TypeScript 工具根据 JSON 数据生成编译时接口/类型。JSON Schema 生成器生成独立 JSON Schema,并明确选择方言版本。在线 JSON 格式化工具在转换前格式化并校验 JSON,或在转换后检查结果。
先生成 Zod 基础,再用真实测试完善它。