2016-03-02 100 views
0

我有一個JSON模式,我想通過JSON結構的之一的相關性進行更改。例如,如果{"foo":1}也包括{"fooBar":"number"}在架構中,導致{"foo":"number", "fooBar":"number"}但是如果{"foo":2}改爲包括{"fooBar2":"bool", "fooBar3":"string"}導致{"foo":1, "fooBar2":"bool", "fooBar3":"string"}。這可能嗎。創建JSON模式值依賴關係

我知道如何使包含一個關鍵更改模式(代碼示例here),但我無法找到任何關於如何使用值可以完成的示例。如果這甚至是可能的。

​​

回答

2

它可以完成,但它有點複雜。以下是一般模式。

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