功能说明
从 JSON 生成 Zod 校验 schema。标量映射到各自的校验器(z.string、z.number、z.boolean、z.null),对象递归为内联 z.object({...}),数组变成 z.array(...)——混合类型的数组则变成每种不同元素类型的 z.union([...])。把输出直接放进一个用 Zod 做运行时校验的 TypeScript 项目:API 响应、配置文件、表单载荷、fixtures。100% 客户端运行。
使用方法
- 把 JSON 粘贴到 JSON 框中(已预填一份示例——Sample 恢复它,Clear 清空它)。
- 可选地设置根名称(默认为
Root,用于const Root = ...绑定)。 - schema 在右侧实时渲染,你滚动输入时它保持固定。
- 复制它,或下载为
schema.ts。
示例
一个扁平对象 — {"id":1,"name":"Ada","active":true,"tags":["a","b"]} →
const Root = z.object({
id: z.number(),
name: z.string(),
active: z.boolean(),
tags: z.array(z.string()),
});
嵌套对象内联递归 — {"user":{"name":"Ada"}} →
const Root = z.object({
user: z.object({
name: z.string(),
}),
});
混合数组变成 union 数组 — {"xs":[1,"a"]} →
const Root = z.object({
xs: z.array(z.union([
z.number(),
z.string(),
])),
});
边界情况 — 空数组变成 z.array(z.unknown());null 映射为 z.null();解析器拒绝的任何内容显示在错误框中,而不是 schema 里。
补充说明
- 私密: 解析在本地完成——可以安全处理敏感载荷。
- 生成的 schema 是一个起点:在你的真实数据存在示例未体现的约束的地方,添加
.min()/.max()修饰。 - 相关工具: JSON to TypeScript、JSON Validator。