toolgarden.xyz
EN

JSON Schema 生成

从 JSON / JSONC / JSON5 样本自动推断字段、类型和嵌套结构,生成 JSON Schema 草稿,浏览器本地完成。

输入 JSON / JSONC / JSON5 样本

JSON Schema

Schema 将显示在这里

工具说明

JSON Schema 用机器可读的规则描述 JSON 允许出现的类型和结构。生成器遍历样本,为对象建立 properties 和 required,为数组推断 items,并识别 integer、number、boolean、null 以及常见的日期、邮箱和 URI 字符串格式。

样本能说明“这次出现了什么”,不能证明所有合法情况。生成的 Draft 2020-12 Schema 会把当前对象字段列为必填,数组中的不同样本可能形成 oneOf,发布前仍需根据业务规则补充可选字段、范围、枚举和 additionalProperties。

使用步骤

  1. 选择覆盖充分的样本

    让样本包含典型字段、数组成员和边界值,避免只用一条过于简单的记录。

  2. 生成基础 Schema

    工具递归推断类型与 properties,并输出带 Draft 2020-12 标识的 JSON。

  3. 加入真实约束

    按接口契约调整 required、enum、format、数值范围和额外属性策略,再用校验工具测试。

输入与输出示例

从样本推断出的 schema。它给出了字段和类型,但没有 required、没有取值范围:这些要你补。

JSON 样本
{ "id": 7, "name": "kit" }
生成的 Schema
{
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" }
  }
}

支持范围与限制

输出
从 JSON 样本推断出的 JSON Schema 定义
推断范围
字段名、类型、嵌套结构和数组元素类型
无法推断的部分
字段是否必填、取值范围、字符串格式(邮箱 / 日期)、枚举值:这些需要人工补充
单样本局限
样本里未出现的字段不会进入 schema,可选字段会被当成必填
建议流程
先用多个有代表性的样本生成,再人工合并、补 required 与约束,最后用 Schema 校验回测
用途
为接口契约、配置文件校验和表单验证生成初始定义

典型使用场景

  • 为接口补契约

    从已有响应快速建立 Schema 骨架,再用于请求校验、文档和测试数据检查。

  • 审查配置结构

    把一份可用配置变成明确的类型规则,帮助发现拼错字段和意外类型。

  • 为前端表单生成校验规则底稿

    从一份提交示例推断出字段和类型,再补上必填、长度和格式约束,作为表单校验的起点。

使用前需要知道的事

  • 生成器把样本中出现的对象字段设为 required,但真实接口中的字段可能可选。
  • 空数组没有成员类型信息,只能生成不带具体约束的 items。
  • 字符串格式检测是启发式的,日期或邮箱外观相似的普通文本可能被标记为 format。

相关概念

Draft 2020-12
JSON Schema 当前常用规范版本,定义关键字语义与元 Schema 地址。
required
对象中必须存在的属性名数组;它与属性值是否允许 null 是两件不同的事。

常见问题

JSON Schema 是怎么生成的?
工具会分析你提供的 JSON 样本,推断每个字段的类型和结构,自动生成对应的 JSON Schema 定义。
生成的 Schema 需要再手动调整吗?
通常需要。样本无法体现可选字段、取值范围和 null 的真实类型,建议按需补充 required、enum 等约束。
生成会上传数据吗?
不会。Schema 推断在浏览器本地完成,样本数据不会上传到服务器。
生成的 schema 可以直接用吗?
不建议。它只包含从样本能看出的字段名、类型和结构,缺少 required、取值范围、字符串格式和枚举:这些恰恰是校验真正起作用的部分。请把它当作起草结果,人工补完再用。
怎么用多个样本生成更完整的 schema?
分别用几个有代表性的样本各生成一份,然后人工合并:所有样本都出现的字段进 required,只在部分样本出现的保持可选,类型不一致的改成联合类型。最后用 Schema 校验回测全部样本。