JSON 转代码类型
把 JSON 或 JSON Schema 直接生成为 TypeScript、Go、Java、Python 等 26 种语言的类型定义,带注释和多余尾逗号也能读,全部在浏览器里完成。
JSON 转代码类型是什么
把一段 JSON 或一个 JSON Schema 直接生成为代码里的类型定义:TypeScript 的 interface、Go 的 struct、Java 的 POJO、Python 的 dataclass、C# 的 class,一共 26 种语言。照着一坨接口响应手抄字段最枯燥,还得判断哪里是数组、哪个字段可空,这里贴进去就出来。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用JSON 转代码类型
- 把接口返回的 JSON 粘进左边输入框,// 注释和对象结尾多余的逗号都能直接读
- 右侧默认生成 TypeScript interface,用「目标语言」下拉框换成 Go、Java、Python 等 26 种之一
- 根类型名默认 Root,可以改成项目里实际在用的 User、OrderVO 这类名字
- 展开「高级选项」调该语言的细节:只生成类型还是连序列化代码一起生成、包名、缩写词大小写、数组写成 array 还是 list
- 右上角复制,或点下载存成 .ts / .go / .java 文件
示例
输入
{"id": 1, "tags": ["a"], "meta": {"ok": true}}输出
export interface Root {
id: number;
tags: string[];
meta: Meta;
}
export interface Meta {
ok: boolean;
}嵌套对象自动拆成独立 interface,数组推断成 string[]
常见问题
支持 GraphQL schema 吗?
不支持。底层用的 quicktype-core 26.0 已经把 GraphQL 输入移除了,这一页只吃 JSON 和 JSON Schema。
带注释的 JSON 能直接贴吗?
能。tsconfig.json 那种 // 和 /* */ 注释、对象或数组结尾多余的逗号,都会先被清掉再解析。
会上传我的数据吗?
不会。生成全部在这个页面里完成,不请求任何服务器,数据不出浏览器。
生成的代码能直接放进项目吗?
类型定义部分可以直接用。带序列化代码的语言(Java、C#、Swift 等)会引用对应框架的包,用之前看一眼文件头的 import。
小提示
- 贴进去的如果是一个 JSON 数组,生成的类型名会在根类型名后面拼上 Item,取的是数组元素的形状。想要干净的单个实体,贴一个元素进去更直接
- 字段值全是 null 时推断不出类型,会退化成 any 或 interface{}。拿一条有真实值的样本生成更准
- 「只生成类型」默认是开着的。关掉之后 TypeScript 会连运行时类型校验函数一起生成,一个八字段的对象能出两百行
- 数字类型按样本的值域推断:样本里都是小整数就出 int / number,出现 1.5 才会出 double / float