JSON 转类型 使用方法
- 1
粘贴 JSON 样本
粘贴一个响应、一组记录的数组,或连续粘贴多个响应;示例中展示了两个合并后的用户。
- 2
选择语言
选择 TypeScript、Zod、Go、Python、Java、C#、Kotlin、Swift 或 Rust,并设置对应的风格选项。
- 3
命名根类型
设置顶层类型的名称,例如 User 或 OrderResponse。
- 4
生成并复制
点击“生成类型”,然后复制代码或下载;修改设置后会自动重新生成。
限制与 Pro
免费使用,无需注册:支持 9 种输出语言和 3 种 Python 风格,合并样本数量不限,文件最大 20 MB,生成超过 30 秒会停止。
Pro 可去除广告;所有方案的生成器功能相同。 了解 Pro
关于 JSON 转类型
为 API 响应手写类型既慢又容易出错,尤其是数据嵌套了三层的时候。粘贴一个或多个 JSON 样本,这个生成器会推断数据结构,并输出可直接粘贴使用的定义,支持九种形式:TypeScript 接口或类型别名、带 Zod 校验模式的 TypeScript、带 json 标签的 Go 结构体、Python 的 dataclass、TypedDict 或 Pydantic v2 模型、带 Jackson 注解的 Java record、适用于 System.Text.Json 的 C# 类、适用于 kotlinx.serialization 的 Kotlin 数据类、Swift 的 Codable 结构体,以及适用于 serde 的 Rust 结构体。
单个样本很难展示所有字段,所以生成器会合并你提供的全部样本。你可以连续粘贴多个文档、使用 JSON Lines,或粘贴对象数组:只在部分对象中出现的键会变成可选,有时为 null 的键会变成可空,有时带小数的整数会变成浮点数,真正类型混杂的值会变成联合类型或该语言的动态 JSON 类型。嵌套对象会生成各自命名的类型,例如 orders 变成 Order,addresses 变成 Address,结构相同的类型只生成一次并复用。键为数字、UUID 或日期的对象会转成映射。
字段名会按各语言的习惯转换,而 first-name、class 这类不同的 JSON 键,会用对应的注解、别名或 CodingKeys 映射回去。样本中的注释和末尾逗号也能正常处理。
输出结果只描述你提供的样本;生成器无法得知样本里没有的字段或取值,所以在正式使用前,请对照 API 文档检查。
隐私
样本的解析和代码生成都由当前标签页中的 Web Worker 完成,包含个人或内部数据的 API 响应不会被上传。语言和命名选项保存在本地存储中,粘贴的 JSON 不会被保留。
功能
合并多个样本
在你粘贴的所有样本中,缺失的键变为可选,值为 null 的字段变为可空。
支持 9 种语言
TypeScript、Zod、Go、Python、Java、C#、Kotlin、Swift 和 Rust,命名符合各语言习惯。
自带键名映射
json 标签、别名、@SerialName、@JsonProperty 和 CodingKeys 会保留原始 JSON 键名。