JSON 类型生成器将 JSON 数据自动转换为 TypeScript、Rust、Kotlin、Python 或 JSON Schema 类型定义,免去手动逐字段编写类型声明的重复工作,粘贴 JSON 后实时在右侧编辑器中生成对应代码。
JSON 输入到类型输出示例
输入以下 JSON:
{
"user": {
"id": 123,
"name": "Alice",
"roles": ["admin", "viewer"]
}
}
选择 TypeScript 模式,自动生成:
export type Root = {
user: User;
};
export type User = {
id: number;
name: string;
roles: string[];
};
选择 Rust 模式则生成带 #[derive(Serialize, Deserialize)] 注解的 Struct。选择 Python 模式生成 Pydantic BaseModel 类定义。
输出模式说明
工具支持 8 种输出模式:
- TypeScript(interface):生成多个 interface 声明,适合大型项目
- TypeScript(单一类型别名):使用 type alias 内联嵌套类型,适合快速使用
- Rust:生成带序列化派生宏的 struct,依赖 serde
- Kotlin(Jackson):生成带 @JsonProperty 注解的 data class
- Kotlin(kotlinx.serialization):生成带 @Serializable 注解的 data class
- Python(Pydantic):生成 Pydantic v2 BaseModel 类
- JSON Schema:生成标准 JSON Schema 格式,可用于接口文档
- Shape(内部表示):查看工具内部的类型分析中间结果
高级选项
属性名格式:将 JSON 中的 snake_case 键自动转换为目标语言约定的命名方式,支持 camelCase、PascalCase、snake_case、SCREAMING_SNAKE_CASE、kebab-case 等。
类型名称:自定义根类型的名称,默认为 Root,建议改为与业务相关的名称(如 UserResponse)。
展开路径:使用 JSON Pointer 语法(如 /items/-/data)指定需要提升到顶层的嵌套路径,- 作为数组通配符,适合处理有固定结构的分页响应。
收集额外属性:启用后,生成的类型允许声明字段之外的额外键(TypeScript 对应 [key: string]: unknown),适合结构可能扩展的场景。
类型推断规则
工具根据 JSON 值的类型进行静态推断:数字不区分整数与浮点数(统一推断为 number/i64/f64 视目标语言而定),null 值会被推断为可选字段,数组中混合类型会生成联合类型,空数组推断为 unknown[]。推断结果以当前 JSON 样本为准,如样本数据不代表真实业务范围,建议手动补充调整。