创建JSON模式值依赖项

时间:2016-03-02 19:15:26

标签: json jsonschema

我想要通过JSON结构的之一的依赖关系更改JSON模式。例如,如果{"foo":1}在架构中也包含{"fooBar":"number"},则会生成{"foo":"number", "fooBar":"number"},但如果{"foo":2}改为包含{"fooBar2":"bool", "fooBar3":"string"},则会生成{"foo":1, "fooBar2":"bool", "fooBar3":"string"}。这可能。

我知道如何包含一个键更改架构(来自here的代码示例),但我找不到任何关于如何使用值完成此操作的示例。如果这是可能的话。

 {
  "type": "object",

  "properties": {
    "name": { "type": "string" },
    "credit_card": { "type": "number" },
    "billing_address": { "type": "string" }
  },

  "required": ["name"],

  "dependencies": {
    "credit_card": ["billing_address"]
  }
}

1 个答案:

答案 0 :(得分:2)

可以做到,但有点复杂。以下是一般模式。

{
  "type": "object",
  "anyOf": [
    {
      "properties": {
        "foo": { "enum": [1] },
        "fooBar": { "type": "number" }
      }
    },
    {
      "properties": {
        "foo": { "enum": [2] },
        "fooBar2": { "type": "boolean" },
        "fooBar3": { "type": "string" }
      }
    }
  ]
}