JSON Schema 生成器
左侧粘贴 JSON,右侧实时生成 Schema。
JSON Schema
使用方法
- 在左侧粘贴一段样例 JSON:对象、数组或单个值都行。Schema 会随输入实时生成。
- 选择 Schema 版本(Draft 7 或 2020-12),并可开关字符串格式识别、示例值、以及是否把每个属性都标记为必填。
- 复制或下载为 schema.json。内容不上传:整份文档都在浏览器里解析。
示例
样例 JSON
{
"id": 42,
"name": "Ada Lovelace",
"email": "ada@example.com",
"active": true,
"tags": ["admin", "editor"],
"profile": { "score": 4.5, "verified": false }
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"active": { "type": "boolean" },
"tags": { "type": "array", "items": { "type": "string" } },
"profile": {
"type": "object",
"properties": {
"score": { "type": "number" },
"verified": { "type": "boolean" }
},
"required": ["score", "verified"],
"additionalProperties": false
}
},
"required": ["id", "name", "email", "active", "tags", "profile"],
"additionalProperties": false
}按默认规则生成:Draft 7、开启格式识别、全部属性必填。邮箱字符串被加上 format 提示;整数原样保留;嵌套的 profile 变成独立的对象 Schema。
规则、限制与已知问题
- 类型由样例推断:object、array、string、integer、number、boolean、null。数组元素会被合并——多个对象时键取并集,仅当某键出现在所有元素里才标记为必填。
- 同一数组里出现混合类型会用 anyOf 表达;空数组只给出 type:array 且不带 items(样例无法推断元素类型)。
- 字符串格式(email、UUID、URI、date、date-time)按值猜测——只是提示,并非对所有可能取值都做校验。可用开关关闭。
- 重复键只保留最后一次,与 JSON.parse 一致。仅支持严格 JSON(RFC 8259):注释、尾随逗号、单引号都会带行列号报错。
- Schema 是标准 JSON,关键字与输出不随页面语言改变。示例值按原值重建,因此超大整数(如 12345678901234567890)在示例里可能被四舍五入。
- 上限 100 万字符、512 层嵌套:超过即报错,不截断。文件上传只读取本地文件内容,同样不上传。
相关工具
拿到 Schema 之后,通常会需要这些工具。