JSON 转代码生成器:Go、Rust、TS

JSON 转代码生成器,可将示例数据即时转为 Go、Rust、TypeScript 和 Python 的类型化结构体。

你的 JSON 完全在你的浏览器中解析并转换为代码,因此不会上传到任何服务器。

由 Udit Agarwal 开发和维护

只需要 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 转代码

  1. 将你的 JSON 对象或对象数组粘贴到输入框中。
  2. 从下拉菜单选择目标语言,例如 Go、TypeScript 或 Rust(serde)。
  3. 设置「根名」字段以命名顶层类型。
  4. 在输出面板中查看生成的代码,并检查任何解析错误信息。
  5. 复制代码,或以对应语言扩展名将其下载为文件。

示例

输入

{ "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 转代码生成器完全在你的浏览器中运行,你的数据绝不离开你的设备。

相关工具

更多JSON工具

  • JSON Diff — 对比两个 JSON 文档,查看与键顺序无关的结构化差异。
  • JSON Schema 生成器 — 从样本生成 JSON Schema,或根据 schema 校验文档。
  • JSON 扁平化 / 还原 — 将嵌套的 JSON 扁平化为点记法键,或将扁平路径还原回去。
  • JSON 转 Zod — 从 JSON 示例生成 Zod 模式,可推断类型与嵌套对象。
  • JSON 转 Pydantic — 从 JSON 示例生成 Pydantic v2 模型类,带类型推断。
  • JSONPath 求值器 — 针对你的 JSON 测试 JSONPath 表达式,实时查看匹配结果。
  • JSON 转 TOON — 将 JSON 转为 TOON 再转回来,用更少的 token 装下相同数据。
  • jq 演练场 — 在浏览器中针对 JSON 运行真正的 jq 引擎,即时看到结果。
  • TypeScript 转模拟 JSON — 从 TypeScript 接口生成符合其形状的逼真模拟 JSON。
  • JSON Schema 示例数据生成器 — 从 JSON Schema 生成遵循类型、格式和枚举的示例 JSON。
  • JSON 转 XML 转换器 — 在浏览器中把 JSON 转成美化的 XML,并把 XML 转回 JSON。
  • NDJSON 转 JSON 转换器 — 在浏览器中把 NDJSON(JSON Lines)转成美化的 JSON 数组并可反向转换。

查看全部JSON工具 (29) · 全部工具