从 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 的过程,减少手写类型与校验规则的成本,让前后端共享同一份结构约束。
如何使用
- 粘贴 API 响应、配置文件或示例 JSON。
- 设置根接口名称、Schema 标题与缩进。
- 生成 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" }
}
}
}
}
🔧 使用建议
- 保证 JSON 合法:去掉注释、尾逗号再粘贴,推断才会准确。
- 命名根接口:比起默认
RootObject,用业务语义(如UserProfileResponse)更方便在 IDE 中检索。 - 与真实接口对齐:把线上返回贴进来比对,Schema 会立即提示缺少/新增字段。
- 下载归档:将
types.d.ts或schema.json纳入版本控制,和代码一起 Code Review。
❓ 常见问题 FAQ
Q1:JSON 解析报错怎么办?
A:请确保 JSON 合法,去掉注释、尾逗号与不规范引号后再粘贴。
Q2:字段缺失会如何处理?
A:工具会根据样例推断必填/可选字段,建议贴入更完整的真实响应以提升准确度。
Q3:支持嵌套数组和联合类型吗?
A:支持,工具会自动识别数组中的对象结构与可空字段。
Q4:可以导出文件吗?
A:可以直接下载 types.d.ts 与 schema.json,便于纳入项目版本管理。