tbtoolbaba

JSON 转类型定义

粘贴 JSON,一键生成 TypeScript / Python / Go / Rust / C++ / Java / C# / Kotlin / Scala / Swift / Objective-C / Dart / PHP / Ruby 等 17 种语言/框架的类型定义。

相关工具

使用说明

如何使用 JSON 转类型工具

基本用法

  1. 在左侧输入框中粘贴 JSON 数据。
  2. 从上方选择目标语言/格式(共 17 种可选)。
  3. 右侧实时显示生成的类型定义代码。
  4. 点击复制将代码粘贴到项目中使用。

多源样本推断(可选字段识别)

如果有多个 JSON 样本需要统一的类型定义:

  1. 在输入框中依次粘贴多个 JSON 对象,用空行分隔。
  2. 工具会自动对比各样本的字段。
  3. 某些样本有、某些没有的字段会被标记为可选。

支持的格式/语言(17 种)

分组 格式 说明
类型/Schema TypeScript interface 类型定义
Zod 运行时数据校验
JSON Schema 语言无关的数据标准
Python Python dataclass 标准库 dataclasses,无需额外依赖
Pydantic 带校验的 Python 数据模型
后端 Go struct + json tag
Rust serde Serialize/Deserialize
C++ nlohmann/json 风格 struct
Java Jackson POJO + getter/setter
C# JsonSerializer 自动属性
Kotlin data class + @SerializedName
Scala case class + Jackson
PHP typed properties + fromArray/toArray
Ruby attr_accessor + from_json/to_json
移动端 Swift Codable struct
Objective-C NSObject + @property
Dart fromJson/toJson 完整构造

为什么选择 toolbaba 的 JSON 转类型工具

  • 17 种语言全覆盖:前端、后端、移动端常用语言一次覆盖,无需切换多个工具。
  • 纯本地处理:类型推断和代码生成在浏览器中完成,JSON 数据不上传。
  • 智能推断:嵌套对象递归展开,多源样本可选字段识别。
  • 生产可用:每种语言都生成对应生态的标准代码——Go 带 json tag、Rust 带 serde 属性、C++ 带 nlohmann 宏、Java 带 getter/setter——可直接粘贴使用。
  • 免费免登录:无需注册,无需 API Key,打开即用。

常见问题

支持哪些目标格式/语言?

共支持 17 种格式:TypeScript、Zod、JSON Schema、Python dataclass、Pydantic、Go、Rust、C++、Java、C#、Kotlin、Scala、Swift、Objective-C、Dart、PHP、Ruby。覆盖前端、后端、移动端全场景。

Python dataclass 和 Pydantic 有什么区别?

Python dataclass 使用 Python 标准库 dataclasses 模块,无需额外依赖,适合轻量级数据对象。Pydantic 提供运行时数据校验功能,适合 API 请求/响应模型。两者可以按需选择。

C++ 生成什么风格的代码?

使用 nlohmann/json 库风格,生成 struct + NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE 宏,可选字段用 std::optional 包装。

Scala 和 Ruby 也支持吗?

支持。Scala 生成 case class + @JsonProperty 注解(Jackson);Ruby 生成 class + attr_accessor + from_json/to_json 方法。

Objective-C 和 Swift 有什么区别?

Swift(Codable)适合新项目,Objective-C(NSObject + @property)适合维护旧项目或混编项目。两者都会一起提供,按需选用。

Go/Rust 等语言的类型映射是怎样的?

JSON string → String/string;number → float64/f64/Double;boolean → bool;null → 各语言的 Optional/指针/nullable 类型;嵌套对象自动展开为独立类型。int/float 可根据需要手动调整。

如何推断可选字段?

如果粘贴了多个 JSON 样本(用空行分隔),工具会对比各样本的字段,某些样本有、某些没有的字段会被标记为可选。单个样本时所有字段默认为必填。

数据会上传到服务器吗?

不会。类型推断和代码生成全部在浏览器本地完成,JSON 数据不会离开你的设备。

更新记录

  • 2026-07-04v1.0.0首次发布:支持 TypeScript / Zod / JSON Schema / Pydantic 四种格式生成,递归嵌套类型展开,多源样本可选字段推断。
  • 2026-07-04v1.1.0新增 Go / Rust / Java / C# / Swift / Kotlin / Dart / PHP 共 8 种语言代码生成,总计支持 12 种格式。按语言分组展示。
  • 2026-07-04v1.2.0新增 Python dataclass / C++ struct / Scala case class / Objective-C NSObject / Ruby class 共 5 种语言代码生成,总计支持 17 种格式。重新分组(Python / 后端 / 移动端),优化格式选择器布局。