如何使用json模式相互排除两个(或更多)布尔标志?

时间:2015-02-26 20:16:47

标签: json jsonschema

{ flag1: true, flag2: false } -> ok
{ flag1: false, flag2: true } -> ok
{ flag1: true } -> ok
{ flag2: true } -> ok
{ flag1: false, flag2: false } -> ok
{ } -> ok
{ flag1: false } -> ok
{ flag2: false } -> ok
{ flag1: true, flag2: true } -> NO!

仅当flag1flag2都相等true时,我才希望验证失败。

1 个答案:

答案 0 :(得分:3)

您可以使用not精确指定该约束:

{
    "not": {
        "required": ["flag1", "flag2"], // both flags are present
        "properties": { // Each flag is equal to true
            "flag1": {"enum": [true]},
            "flag2": {"enum": [true]}
        }
    }
}