happytails.ai
简体中文

JSON Schema 合并器

将多个 JSON Schema,或一个 allOf 组合,合并为单个架构。无法同时满足的规则会列为冲突。

最多 100,000 个字符和 2 到 50 个架构。所有处理都在浏览器中进行。可下载合并后的 JSON 架构、JSON 报告和冲突 CSV 列表。 JSON 架构数组,或包含 allOf 的单个架构。也支持 YAML。 最多 100,000 个字符。 运行前请检查设置。

处理结果

报告问题或分享想法。

JSON Schema 合并器
  1. 粘贴 JSON 架构数组,或一个 allOf 列出这些架构的架构。
  2. 选择 JSON Schema 草案版本,或保留自动检测。
  3. 运行合并并查看冲突及 allOf 中保留的规则。
  4. 下载合并后的架构和冲突报告。

使用须知

最多 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 键,验证器会拒绝,因为捆绑验证器无法可靠检查该键。包含该键的字面实例数据会予以保留。