JSON Schema 生成器
在您的浏览器中本地运行从示例 JSON 推断 Draft 2020-12 JSON Schema
JSON 样本
JSON Schema Generator 的作用
它读取示例 JSON,并输出 "$schema" URI 为 https://json-schema.org/draft/2020-12/schema 的 JSON Schema Draft 2020-12 文档。嵌套对象会变成嵌套的 properties,数组会得到 items 架构,整数标记为 integer,其他数字标记为 number,可为 null 的字段使用 ["string", "null"] 这样的类型列表。当对象或数组与其他类型出现在同一位置时,架构使用每种类型一个分支的 anyOf,因此混合数组不会导致生成失败。
使用方法
- 1.粘贴 JSON 样本、上传或拖放一个 .json 文件,或加载示例。包含多条记录的数组能得到最准确的结果。
- 2.输入时架构会自动更新;超过 2 MB 的输入会等待你点击“生成架构”。
- 3.可选填写标题,并设置“检测格式”“包含示例”“推断必填字段”和“推断 enum”。
- 4.阅读关于可选字段、仅含 null、混合类型和 enum 字段的推断说明。
- 5.选择“验证样本”,然后复制架构或下载 schema.json。
选项如何工作
必填字段是在某个位置出现的每个对象都包含的键,因此在记录数组中,只要有一条记录缺少某个键,它就保持可选。仅凭单个对象无法判断哪些键是可选的,工具会明确提示。格式(email、uri、date-time、date、time、uuid、ipv4)只有在某位置的所有字符串都完全符合同一格式时才会添加;关闭检测后会移除所有 format 关键字。enum 默认关闭,只会针对重复出现、不同取值很少,且不像 ID、带格式的值或自由文本的字符串进行推断,并且始终包含样本中的全部取值。
验证、限制与隐私
“验证样本”使用 Ajv 的 Draft 2020-12 strict 模式和 ajv-formats 编译架构并检查样本,对每个失败项显示 JSON Pointer 和规则。由示例推断出的架构只描述样本中出现的内容:对象仍允许额外的键,也不会猜测取值范围、模式或长度。超出 JavaScript 精度的数字仍会得到正确的类型,但不会作为示例。所有处理都在你的浏览器中完成,验证器只在你请求时加载。
