JSON Schema 生成器

左侧粘贴 JSON,右侧实时生成 Schema。

JSON Schema

使用方法

  1. 在左侧粘贴一段样例 JSON:对象、数组或单个值都行。Schema 会随输入实时生成。
  2. 选择 Schema 版本(Draft 7 或 2020-12),并可开关字符串格式识别、示例值、以及是否把每个属性都标记为必填。
  3. 复制或下载为 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 之后,通常会需要这些工具。