JSON 转代码工具
将 JSON 样本转换为 TypeScript 接口、Go 结构体、Rust serde 结构体、Zod 模式或 JSON Schema。
正在加载工具…
JSON 转代码工具 — 粘贴一段有代表性的 JSON 样本,即可立刻得到目标语言的强类型代码:TypeScript 接口、带 json 标签的 Go 结构体、Rust serde 结构体、Zod 模式或 draft-07 的 JSON Schema。类型直接从数据推断而来——嵌套对象会变成命名类型,数组会推断其元素类型,并非在每个数组元素中都出现的字段会被标记为可选。所有处理都在浏览器中完成,你的 JSON 不会被上传。
JSON 转代码工具 是什么?
JSON 转代码是一款完全在浏览器中运行的免费类型生成器,它读取 JSON 样本并以你选择的语言写出对应的数据模型。从「转换为」菜单选择目标——TypeScript 接口、Go 结构体、Rust serde 结构体、Zod 模式或 JSON Schema——并设置「根类型名称」来命名顶层类型。推断引擎会遍历 JSON:字符串、数字、布尔值和 null 映射为原生类型,嵌套对象被提升为各自的命名类型,数组采用其元素类型,而在部分数组元素中缺失的键会成为可选项。前端和后端开发者用它从 API 响应快速搭建 DTO、起草校验模式,并在不手写样板代码的情况下保持客户端与服务端类型一致。
如何使用 JSON 转代码工具
- 在输入框中粘贴或输入一段有代表性的 JSON 样本,或点击「示例」加载范例。
- 打开「设置」,在「转换为」下选择目标:TypeScript、Go、Rust、Zod 或 JSON Schema。
- 设置「根类型名称」以控制顶层接口、结构体或模式的名称。
- 在输出面板查看生成的代码——当你编辑 JSON 或更改选项时,它会自动刷新。
- 查看「类型」统计了解推断出了多少个命名类型,然后点击「复制」获取结果。
示例
对象转 TypeScript 接口
输入
{ "id": 1, "name": "Ada", "active": true }输出
export interface Root {
id: number;
name: string;
active: boolean;
}嵌套对象转 Go 结构体
输入
{ "user": { "age": 30 } }输出
type User struct {
Age float64 `json:"age"`
}
type Root struct {
User User `json:"user"`
}含缺失键的数组转 Zod 模式
粘贴像 [{"a":1,"b":2},{"a":3}] 这样的数组并把「转换为」切换到 Zod。由于第二个元素没有 b,生成器会在推断出的 z.object 中把 b 标记为 .optional(),于是该模式同时接受两种形态。
常见问题
- 我的 JSON 会被上传吗?
- 不会。解析和代码生成全部使用内置推断引擎在你的浏览器中完成。你的 JSON 绝不会离开设备,工具也能离线使用。
- 支持哪些目标?
- TypeScript 接口、Go 结构体(带 json 标签,可选字段用 omitempty)、Rust serde 结构体(带 Serialize/Deserialize 派生,字段被重命名时使用 rename)、Zod 模式以及 draft-07 的 JSON Schema。工具只会生成它能从样本中忠实推断出的内容。
- 可选字段是如何确定的?
- 来自你的样本。当数组中包含对象,而某个键在其中部分对象里缺失时,该键会被推断为可选。除此之外,样本中出现的每个键都被视为必需。
- 数字、null 和混合类型怎么处理?
- 数字映射为语言的浮点类型(number、float64、f64),null 按目标映射为可空或值类型,而在不同样本中持有不同类型的字段会回退为宽松类型(unknown、interface{}、serde_json::Value),而不是凭空猜测。
- 为什么我的输出是空的或显示错误?
- 输入必须是有效的 JSON。如果解析失败,工具会在可用时显示带行号和列号的错误;修正标记处后,代码会立即重新生成。