跳到主要内容

JSON 转 TypeScript

接口响应示例一键生成 TS interface,嵌套自动命名。

本地计算 · 数据不出浏览器
样例 JSON
0 字符1 行0 B

生成结果(本地推断,零上传)

粘贴样例 JSON 后,类型定义会显示在这里。

使用说明

这个工具解决什么问题

对接新接口,文档只有一段响应示例,类型定义却要自己照着敲:嵌套对象一层层命名、数组元素类型一个个合并,费时还容易抄错。这个工具从 JSON 样例直接反推 TypeScript interface:嵌套对象自动按「父名+字段名」PascalCase 命名,数组元素类型自动合并,混合元素生成 (number | string)[] 这样的带括号联合数组,空数组推断 unknown[],非法键名自动加引号。可选 type 别名风格。纯浏览器本地运行,数据不上传。

核心能力

样例反推:一份 JSON 生成整套 interface,嵌套结构全覆盖。自动命名:嵌套对象按父名+字段名 PascalCase,如 PayloadOwner。数组合并:元素类型自动取联合,混合元素生成带括号数组。边界处理:空数组推断 unknown[],非法键名自动加引号。零上传:本地转换,样例不出本机。

使用建议

用字段最全的响应样例做输入,少见的字段类型才不会漏;生成后重点检查两类:unknown[] 的空数组按真实元素类型补上,联合类型按业务确认是否需要收窄。OpenAI 等接口的响应示例直接贴入即可;类型定稿后建议在项目里 freeze 住,别每次拿新响应重新生成,避免类型跟着数据漂移。

常见问题

嵌套对象的类型名从哪来?

自动命名:父名+字段名转 PascalCase,如 payload 里的 owner 生成 PayloadOwner。名字不满意生成后手改即可,工具不做全局命名配置。

数组元素类型不一致怎么办?

自动合并各元素类型取联合:混合元素生成 (number | string)[],注意联合数组带括号;空数组拿不到元素信息,推断为 unknown[] 留给你补。也可选 type 别名风格输出。

字段名有特殊字符怎么处理?

非法 TypeScript 标识符的键名自动加引号,生成 {"user-name": string} 这样的合法写法,且与原数据键名对得上。

典型用途是什么?

把 OpenAI 等接口的响应示例贴进来直接得到类型定义,省去照着文档手写;配合编辑器补全还能顺带检查字段拼写。

JSON 转 C# 类

样例 JSON 生成 C# 类,PascalCase 与 JsonPropertyName 自动补。

JSON 转 Go Struct

样例 JSON 生成 Go struct 与 json tag,混合类型 any 兜底。

JSON 转 Java POJO

样例 JSON 生成 Java 类与 getter/setter,Jackson 注解可选。

查看更多格式转换,或浏览全部工具。