从 JSON 生成 TypeScript 类型和 JSON Schema

粘贴 JSON 即可输出类型安全的 TypeScript 定义与 JSON Schema。

生成选项

工具简介:JSON 转 TypeScript & JSON Schema

把任何 JSON 数据粘贴进来,就能同步生成 TypeScript 类型定义与 JSON Schema 校验文件。一个入口同时照顾前端类型提示、后端校验、接口文档与测试用例,避免多人协作时结构走样。

什么是 JSON 转 TypeScript?

JSON 转 TypeScript 是把接口响应或配置数据中的 JSON 结构,自动推断成 TypeScript interface/type 与 JSON Schema 的过程,减少手写类型与校验规则的成本,让前后端共享同一份结构约束。

如何使用

  1. 粘贴 API 响应、配置文件或示例 JSON。
  2. 设置根接口名称、Schema 标题与缩进。
  3. 生成 TypeScript 或 Schema,复制或下载保存。

常见应用场景

  • 为 API 响应快速生成类型定义,提升 IDE 自动补全。
  • 为配置文件生成 Schema,做校验与表单约束。
  • Mock 数据、接口文档与后端校验保持一致。

✨ 功能亮点

  • 🧱 类型 + Schema 双输出:同一份 JSON 自动推导出 interface/type 与 JSON Schema,消灭“代码写一套、校验写一套”的重复劳动。
  • ⚙️ 自定义选项:可自定义根接口名称、Schema 标题与缩进风格,方便直接放入仓库或分享给团队。
  • 🧪 智能推断:识别嵌套数组、联合类型、可空字段,并在 JSON Schema 中处理 required/optional。
  • 🌍 多语种页面:UI 继承 ToolMi 既有布局,/en 与 /zh 路由一致,适合做全球 SEO。

📋 示例

示例 JSON

{
  "project": "ToolMi",
  "version": "1.0.0",
  "features": [
    {
      "name": "Type generator",
      "status": "stable",
      "contributors": 8
    },
    {
      "name": "JSON schema",
      "status": "beta",
      "contributors": 5
    }
  ],
  "meta": {
    "updatedAt": "2024-03-12T08:45:00Z",
    "tags": ["json", "typescript", "schema"],
    "production": true
  }
}

生成的 TypeScript

export interface RootObject {
  project: string;
  version: string;
  features: FeatureItem[];
  meta: Meta;
}

export interface FeatureItem {
  name: string;
  status: string;
  contributors: number;
}

export interface Meta {
  updatedAt: string;
  tags: string[];
  production: boolean;
}

生成的 JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "JSON Schema",
  "type": "object",
  "additionalProperties": false,
  "required": ["project", "version", "features", "meta"],
  "properties": {
    "project": { "type": "string" },
    "version": { "type": "string" },
    "features": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["name", "status", "contributors"],
        "properties": {
          "name": { "type": "string" },
          "status": { "type": "string" },
          "contributors": { "type": "integer" }
        }
      }
    },
    "meta": {
      "type": "object",
      "additionalProperties": false,
      "required": ["updatedAt", "tags", "production"],
      "properties": {
        "updatedAt": { "type": "string" },
        "tags": {
          "type": "array",
          "items": { "type": "string" }
        },
        "production": { "type": "boolean" }
      }
    }
  }
}

🔧 使用建议

  1. 保证 JSON 合法:去掉注释、尾逗号再粘贴,推断才会准确。
  2. 命名根接口:比起默认 RootObject,用业务语义(如 UserProfileResponse)更方便在 IDE 中检索。
  3. 与真实接口对齐:把线上返回贴进来比对,Schema 会立即提示缺少/新增字段。
  4. 下载归档:将 types.d.tsschema.json 纳入版本控制,和代码一起 Code Review。

❓ 常见问题 FAQ

Q1:JSON 解析报错怎么办?
A:请确保 JSON 合法,去掉注释、尾逗号与不规范引号后再粘贴。

Q2:字段缺失会如何处理?
A:工具会根据样例推断必填/可选字段,建议贴入更完整的真实响应以提升准确度。

Q3:支持嵌套数组和联合类型吗?
A:支持,工具会自动识别数组中的对象结构与可空字段。

Q4:可以导出文件吗?
A:可以直接下载 types.d.tsschema.json,便于纳入项目版本管理。