🧩

JSON 转 TypeScript

粘贴 JSON 即生成 TypeScript 类型:嵌套对象自动提取为独立 interface、数组元素合并为联合类型、缺失字段自动标可选;支持 interface / type / zod schema 三种输出与 camelCase、snake_case 等字段命名,解析失败时给出行列位置。
类型生成 📂 开发 👤 ToolWorld 🏷️ v1.9.4 ⚙️ clipboard
自动识别对象、数组、数字、布尔、null,数组元素类型会合并为联合类型
生成结果

    
嵌套对象自动提取为独立 interface,数组内对象命名为「字段名Item」
类型映射规则
JSON 值TypeScript说明
"abc"string双引号字符串
1 / 1.5number整数与小数
truebooleantrue / false
nullnull输出 null 或合并为可选
[1,2]number[]元素类型 + []
[]unknown[]空数组输出 unknown[]
{"a":1}A提取为独立 interface
[1,"a"]number | string多类型合并为联合

使用说明

工具介绍

接口文档里给一段 JSON 样本,前端要 TypeScript 类型,后端可能是 Go 的 struct、Python 的 dataclass、Rust 的 serde 结构,校验层还要 zod。本工具从同一段样本一次生成六种形态,字段名与可选性保持一致,不会出现前端叫 userName、后端叫 user_name 的漂移;嵌套对象自动提成独立类型,数组内对象按「字段名Item」命名。

功能特点

  • 六种输出:interface、type 别名、zod schema、Go struct、Rust serde、Python dataclass
  • 字段命名四档:保持原样、camelCase、PascalCase、snake_case
  • 缺失字段设为可选:样本中未出现的键按可选属性处理,而不是编造值
  • 嵌套对象自动抽取为独立类型,数组元素合并为联合类型
  • 错误定位到行列:解析失败时给出第几行第几列与上下文片段
  • 根类型名可自定义,缩进 2/4 空格可选,支持复制全部与下载 .ts 文件

使用方式

  1. 把 JSON 粘贴进输入框,或点「示例」载入一段含嵌套与数组的样本
  2. 填「根类型名」(默认 Root),选择缩进与输出形式
  3. 按需打开「加 export」「缺失字段设为可选」,选择字段命名规则
  4. 点「生成类型」,在结果区看到全部类型定义
  5. 用「复制全部」取走代码,或「下载 .ts」保存为文件

注意事项

  • 输出基于单个样本:样本里没有出现的字段不会被推断出来,真实接口请用覆盖最全的一条响应;六种方言共用同一份字段与可选性。
  • 同一字段跨记录出现多种类型时合并为联合类型(如 number | string);空数组只能给 unknown[],需按实际数据手工补全元素类型。
  • 可选字段输出为 key?: type,语义是键可能不存在,与值为 null 不同;日期字符串保持 string,避免写入时区与格式假设。
  • zod 输出需自行安装依赖,Go 输出带 json tag,Rust 输出带 serde 属性但需引入 serde 依赖,Python dataclass 会改写非法标识符并保留原键注释。
  • 解析失败给出行列位置便于定位漏逗号;数值统一按 number,不区分 int64 与 float;只做类型生成,不做校验执行与 schema 版本对比。

相关推荐

⏫︎
💬