JSON Schema 生成器
免费在线使用 JSON Schema 生成器 无需安装即可使用工具
关于 JSON Schema 生成器
通过遍历示例 JSON 文档的结构来推断 JSON Schema(draft-07)。生成器会检测 null、boolean、integer 与 number、string、array 以及 object 类型;输出 $schema 头部;并允许你切换严格模式和额外属性的处理方式。检测到的根类型会显示出来供参考。
如何使用
1. 将 JSON 样本粘贴到 JSON Input 文本框中。 2. 切换 Strict Mode,以要求数组拥有 minItems: 1。 3. 切换 Allow Additional Props,以控制对象上的 additionalProperties 标志。 4. 点击 Generate。 5. 从 Output Schema 卡片复制生成的 schema。
Schema 推断规则
数字在 Number.isInteger 为真时被划分为 integer,否则为 number。数组仅从第一个元素推断其 items schema;在严格模式下它们还会获得 minItems: 1。对象在 properties 下列出每个键,并把每个键加入 required;当 Allow Additional Props 关闭时,对象还会获得 additionalProperties: false。整个结果以 $schema: http://json-schema.org/draft-07/schema# 包裹。Root Type 字段显示 null、array、object、string、number、boolean 中的一种。
▶生成的是哪个 JSON Schema 草案?
Draft 07。每个输出都以 "$schema": "http://json-schema.org/draft-07/schema#" 开头,并使用兼容 draft-07 的关键字(properties、required、items、minItems、additionalProperties)。
▶如何处理包含混合元素类型的数组?
仅采样数组的第一个元素来推导 items schema。如果各元素结构不同,后续元素会被忽略,schema 可能无法覆盖它们。
▶Strict Mode 是做什么的?
它为每个数组添加 minItems: 1,断言数组必须至少包含一个元素。除此之外它不会限制对象的形状。
▶所有对象键都会被标记为 required 吗?
是的。在示例对象中观察到的每个键都会被加入该对象的 required 数组,无论它是否在每个实例中都出现。
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。