JSON 转代码
从 JSON 生成 Go、Rust、Python、Java、Kotlin、C# 和 TypeScript 类型。
你的 JSON 完全在你的浏览器中解析并转换为代码,因此不会上传到任何服务器。
只需要 TypeScript 类型?试试 JSON 转 TypeScript 转换器。
关于 JSON 转代码
这款 JSON 转代码生成器将示例 JSON 数据转为可直接使用的类型定义,支持 Go、Rust、Python、TypeScript、Java、Kotlin 和 C#。粘贴 API 响应即可即时得到 JSON 转 Go 结构体、JSON 转 TypeScript 接口、JSON 转 Rust serde 模型、JSON 转 Python dataclass 或 Pydantic 模型,或 JSON 转 Java 类。它会推断字段类型、标记可选键、命名嵌套结构体,并处理对象数组,让你少花时间手写样板代码。选择目标语言、设置根类型名,然后复制或下载结果。它专为需要快速从 JSON 生成类型的后端和前端开发者、API 集成人员和 QA 工程师而打造。一切都在你的浏览器本地处理,因此你的数据绝不离开你的设备。
功能特性
- 为八个目标生成类型:Go、Rust(serde)、Python dataclass、Pydantic、TypeScript、Java、Kotlin 和 C#
- 推断基本类型,并区分整数与浮点数
- 检测嵌套对象,并为每个对象生成单独命名的结构体
- 处理对象数组,合并键并将部分元素中缺失的字段标记为可选
- 添加与语言相应的序列化注解,如 Go 的 json 标签和 Rust 的 derive(Serialize, Deserialize)
- 允许你设置自定义根类型名,用以驱动生成的类名和下载文件名
- 报告 JSON 解析错误并指出行号与列号,让你修复格式错误的输入
- 复制输出,或以每种语言正确的文件扩展名下载它
如何使用 JSON 转代码
- 将你的 JSON 对象或对象数组粘贴到输入框中。
- 从下拉菜单选择目标语言,例如 Go、TypeScript 或 Rust(serde)。
- 设置「根名」字段以命名顶层类型。
- 在输出面板中查看生成的代码,并检查任何解析错误信息。
- 复制代码,或以对应语言扩展名将其下载为文件。
示例
输入
{ "id": 1, "name": "Ada", "active": true }
输出
export interface Root {
id: number;
name: string;
active: boolean;
}
JSON 转为一个 TypeScript 接口,根类型命名为 Root。
常见错误与故障排除
- 工具报告一个带行号和列号的解析错误。 — 你的 JSON 无效。检查是否有末尾逗号、单引号或未加引号的键,并确保输入在生成前是严格的 JSON。
- 你看到「Top-level JSON must be an object or an array of objects.」。 — 将裸值包裹在对象中,或传入一个对象或对象数组。顶层的字符串、数字或布尔值无法被转换为类型。
- 整数的数字被生成为 int 或 number,但你期望的是浮点数。 — 类型推断基于示例值,因此 9 会成为整数,9.5 会成为浮点数。如果该字段确实是浮点数,请在示例中包含小数点。
- 某个字段被意外标记为可选。 — 当你传入对象数组时,任何在部分元素中缺失的键都会被视为可选。如果它应为必填,请提供全部都包含该键的元素。
- 空数组生成了「any」或「unknown」元素类型。 — 生成器无法从空数组推断元素类型。请至少包含一个有代表性的元素,以便检测元素类型。
常见问题
- JSON 转代码生成器是什么?
- 它是一款基于浏览器的工具,会读取示例 JSON 数据并写出匹配的类型定义,支持 Go、Rust(serde)、Python dataclass、Pydantic、TypeScript、Java、Kotlin 和 C#,让你能将类型化模型直接放入项目中。
- 如何从 JSON 生成 Go 结构体或 TypeScript 接口?
- 粘贴你的 JSON,从语言下拉菜单中选择 Go 或 TypeScript,设置「根名」,然后复制或下载生成的结构体或接口。输出会随输入更新。
- JSON 转代码如何处理嵌套对象和数组?
- 每个嵌套对象会成为各自命名的结构体或类,而对象数组会被合并,使元素类型涵盖每个键。在部分数组元素中缺失的键会被标记为可选。
- 我能转换顶层的 JSON 数组吗?
- 可以。支持顶层的对象数组:工具会生成元素类型外加一个 Root 别名,例如 Go 中的 type Root = []Item,或 TypeScript 中的 export type Root = Item[]。
- 生成的类型中可选字段是如何确定的?
- 当你在数组中提供多个对象时,任何未出现在每个对象中的键都会被视为可选,并在目标语言中以可空或可选的形式生成。
- 生成代码时,我的 JSON 会被发送到任何地方吗?
- 不会。JSON 转代码生成器完全在你的浏览器中运行,你的数据绝不离开你的设备。
相关工具
全部 ArrayKit 工具