JSON Schema 合并器
将多个 JSON Schema,或一个 allOf 组合,合并为单个架构。无法同时满足的规则会列为冲突。
最多 100,000 个字符和 2 到 50 个架构。所有处理都在浏览器中进行。可下载合并后的 JSON 架构、JSON 报告和冲突 CSV 列表。 JSON 架构数组,或包含 allOf 的单个架构。也支持 YAML。 最多 100,000 个字符。 运行前请检查设置。
处理结果
JSON Schema 合并器
- 粘贴 JSON 架构数组,或一个 allOf 列出这些架构的架构。
- 选择 JSON Schema 草案版本,或保留自动检测。
- 运行合并并查看冲突及 allOf 中保留的规则。
- 下载合并后的架构和冲突报告。
使用须知
最多 100,000 个字符和 2 到 50 个架构。所有处理都在浏览器中进行。可下载合并后的 JSON 架构、JSON 报告和冲突 CSV 列表。
规则的组合方式
类型会取交集;enum 和 const 值也会取交集;minimum 和 maximum 边界会采用更严格的值;required 列表会合并;属性会逐一合并。当一个架构禁止额外属性时,另一个架构单独定义的属性也会被禁止;如果该属性是必需的,就会列出冲突。
在 allOf 中保留的内容
某些关键字无法精确组合,例如两个不同的正则表达式、oneOf、not、if 和 then、与其他属性规则同时使用的 patternProperties,以及 unevaluated 属性。这些规则会保留在合并架构的 allOf 中并列入报告,因此架构含义不会改变。
正在检查结果
冲突会标出其架构位置。可选属性或纯数字规则中的冲突本身并不表示整个架构不可满足。仅当有界结构证明确认不存在可满足合并架构的实例时,报告才会标记 provenUnsatisfiable。否则该标记不构成可满足性证明。无冲突时,可选样本检查会使用 Ajv,以另一份组合架构验证每份架构生成的候选项。各输入架构保留自己的本地引用根。样本是证据,不是穷尽的等价性证明。若架构将 __proto__ 用作属性、pattern 或 dependency 键,验证器会拒绝,因为捆绑验证器无法可靠检查该键。包含该键的字面实例数据会予以保留。