JSON 架构使用架构中文档的值

JSON Schema use values from document in schema

假设我们有一个 json 文档

{
  ips: ['192.168.1.1','192.168.1.2', '192.168.1.3'],
  active: '192.168.1.1'
}

我可以编写一个模式来断言 active 必须在 ips 中吗?因此以下将无法通过验证。

{
  ips: ['192.168.1.1','192.168.1.2', '192.168.1.3'],
  active: '192.168.1.4'
}

如果 ips 集已知,这只有使用纯 JSON 架构标准才有可能。在这种情况下,您可以定义一个 enum 的 IP 值并使用它来验证 active 属性。另见:http://json-schema.org/understanding-json-schema/reference/generic.html#id4

如果 IP 集发生变化,您可以使用 JSON补丁更新您的架构。然后,应用验证。