JSON 生成代码类型
根据示例 JSON 生成 TypeScript 接口、C# 类、Java record、Go 结构体、Rust serde 结构体或 Python dataclass;部分样本缺少的字段标为可选。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整语言、根类型名称
开始处理
在本机浏览器中处理,可随时取消
工具介绍
根据示例 JSON 生成代码类型:TypeScript 接口、C# 类、Java record、Go 结构体、Rust serde 结构体或 Python dataclass。粘贴一段接口返回或配置文件,就能得到数据模型的初稿,不必逐个字段手写。
嵌套对象会按键名生成单独的类型;对象列表会合并分析,部分元素缺少的字段标为可选,出现过 null 的字段标为可空。字段名按各语言的命名习惯转换,需要时用注解、标签或注释保留原始键名。最多处理 1 MB JSON,全部在浏览器中完成,内容不上传。
使用步骤
- 粘贴一个 JSON 对象或对象数组,也可以点击“使用示例”。
- 选择“语言”:“TypeScript 接口”“C# 类(System.Text.Json)”“Java record(Jackson)”“Go 结构体”“Rust 结构体(serde)”或“Python dataclass”。
- 设置“根类型名称”,默认为 Root,只能包含字母、数字和下划线,并以字母开头。
- 点击“运行”,预览代码并下载,文件以根类型命名,例如 Root.ts。
格式与限制
- 输入
- 文本
- 输出
- TypeScript、C#、Java、Go、Rust、Python
- 大小上限
- 1 MB
- 可调设置
- 语言(TypeScript 接口、C# 类、Java record、Go 结构体、Rust 结构体、Python dataclass);根类型名称
- 隐私
- 文件留在当前浏览器会话中,不上传文件字节。
- 费用
- 免费,无需注册
常见问题
可选字段和可空字段是怎么判断的?
出现在数组中的对象会合并分析:部分对象缺少的字段标为可选,任何样本中为 null 的字段标为可空。提供几条有代表性的样本,生成的类型会更准确。
为什么有的字段类型是 unknown、object 或 any?
这个字段的样本始终是 null,或者混有数字和字符串等不同类型,没有单一类型能对应;空数组的元素也按这种方式处理。整数和小数混合时则统一为浮点类型。
为什么 10.0 被识别成整数?
JSON 中的 10.0 和 10 是同一个数值,都按整数处理。如果字段会出现小数,请在样本中放一个带小数部分的值,例如 9.5。
嵌套的类型是怎么命名的?
嵌套对象按键名转成大驼峰命名的类型,数组元素取单数形式,例如 orders 得到 Order,categories 得到 Category;重名时加数字,例如 Address2。根节点是数组时,元素类型名为根类型名加 Item,例如 RootItem。
为什么提示 JSON 无效或结构不支持?
输入必须是标准 JSON,顶层是对象或对象数组;注释、多余的逗号和单引号都会报错,可以先用“JSON 格式化与校验”的“修复后格式化”处理。嵌套超过 64 层或要生成超过 500 个类型时,也会停止运行。
用到这个工具的工作流
相关工具
代码格式化
格式化或压缩 HTML、CSS、SCSS、Less、JavaScript、TypeScript、JSON、Markdown、YAML、XML、SQL、C、C++、C#、Java、PHP、Python 与 Nginx 配置。
键值对转代码
把 key=value 或 key: value 形式的行转换为 JSON、YAML、properties、.env、TypeScript、Python、PHP、Java、C#、Go、HTML 下拉选项或 SQL。
JSON 格式化与校验
格式化、压缩或按键名排序 JSON,修复常见错误,或转义为字符串;出错时给出行列位置,大数字不丢精度。
JSON / YAML / XML 转换
校验、格式化或在 JSON、YAML、XML 共同子集之间转换;拒绝外部实体和自定义标签。
URL 解析与参数转换
拆分 URL 的各部分与参数,把查询参数转为 JSON,或由 JSON 对象生成查询参数。
时间与时区转换
每行一个时间,在 ISO 8601、Unix 时间戳和指定时区本地时间之间转换;夏令时缺失或重复的时间会明确提示。