JSON Schema 生成器

在您的浏览器中本地运行

从示例 JSON 推断 Draft 2020-12 JSON Schema

JSON 样本

粘贴 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. 1.粘贴 JSON 样本、上传或拖放一个 .json 文件,或加载示例。包含多条记录的数组能得到最准确的结果。
  2. 2.输入时架构会自动更新;超过 2 MB 的输入会等待你点击“生成架构”。
  3. 3.可选填写标题,并设置“检测格式”“包含示例”“推断必填字段”和“推断 enum”。
  4. 4.阅读关于可选字段、仅含 null、混合类型和 enum 字段的推断说明。
  5. 5.选择“验证样本”,然后复制架构或下载 schema.json。
选项如何工作

必填字段是在某个位置出现的每个对象都包含的键,因此在记录数组中,只要有一条记录缺少某个键,它就保持可选。仅凭单个对象无法判断哪些键是可选的,工具会明确提示。格式(email、uri、date-time、date、time、uuid、ipv4)只有在某位置的所有字符串都完全符合同一格式时才会添加;关闭检测后会移除所有 format 关键字。enum 默认关闭,只会针对重复出现、不同取值很少,且不像 ID、带格式的值或自由文本的字符串进行推断,并且始终包含样本中的全部取值。

验证、限制与隐私

“验证样本”使用 Ajv 的 Draft 2020-12 strict 模式和 ajv-formats 编译架构并检查样本,对每个失败项显示 JSON Pointer 和规则。由示例推断出的架构只描述样本中出现的内容:对象仍允许额外的键,也不会猜测取值范围、模式或长度。超出 JavaScript 精度的数字仍会得到正确的类型,但不会作为示例。所有处理都在你的浏览器中完成,验证器只在你请求时加载。

CodingTool 已正式上线于

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools