JSON 转类型代码(TypeScript、Swift、Kotlin 等)

粘贴一段 JSON 示例,即可生成 8 种语言的类型定义代码,由 quicktype 引擎驱动。

完全在浏览器中运行。输入内容不会被发送或保存。

使用方法

  1. 把 API 返回等 JSON 示例粘贴到左侧输入框。
  2. 选择目标语言,需要时修改顶层类型名。
  3. 点击“转换”。嵌套对象会各自生成独立类型。
  4. 复制代码或下载为源文件。

为每个 API 返回手写模型类型既慢又容易出错。这个 JSON 转类型工具会读取示例 JSON 并生成对应代码:TypeScript 接口、遵循 Codable 的 Swift 结构体、Kotlin data class、Dart 类、带 json 标签的 Go 结构体、Python dataclass、C# 类和 Java 类。每个嵌套对象都会成为一个具名类型,数组会变成带类型的列表,键名会转换成目标语言的命名风格,并在需要的地方保留原始 JSON 键。

转换由开源项目 quicktype 的引擎 quicktype-core(Apache License 2.0)完成,在你第一次点击“转换”时加载到本页面。勾选“仅类型”时只输出纯类型声明;Swift 会保留 Codable 和 CodingKeys,只省略便捷构造器。取消勾选则会同时输出 quicktype 默认生成的解析辅助代码,例如 TypeScript 的 Convert 类、Kotlin 的 Jackson 注解或 Python 的 from_dict 函数。

类型是根据示例推断的,因此请提供能体现所有字段的数据。值为 null 时会生成可选类型或 any 类类型,没有小数的数字会成为整数,在多处以相同结构出现的对象可能会合并为一个类型。你粘贴的 JSON 不会离开浏览器:解析和代码生成都在本机完成,不会上传或保存。

常见问题

我的 JSON 会被发送到服务器吗?

不会。quicktype-core 在浏览器中运行,粘贴的 JSON 不会上传或保存。

为什么某个字段变成了 any 或可选类型?

示例中该值为 null,或部分对象缺少该字段。提供带真实值的示例即可得到具体类型。

Swift 输出使用 Codable 吗?

是的。Swift 结构体遵循 Codable,并包含与原始 JSON 键对应的 CodingKeys。

能只要不依赖库的 Kotlin data class 吗?

可以。保持勾选“仅类型”即可得到纯 data class;取消勾选会附带 Jackson 注解和辅助代码。

相关工具