当前位置: 首页 > 面试题库 >

JSON模式-如果对象*不*包含特定属性,则有效

白昊东
2023-03-14
问题内容

是否有可能建立一个JSON模式,它仍然允许additionalProperties
若一个非常特别的属性名存在匹配吗?换句话说,我需要知道是否有可能与required声明完全相反。

架构:

{
    "type": "object",
    "properties": {
        "x": { "type": "integer" }
    },
    "required": [ "x" ],
    "ban": [ "z" ] // possible?
}

比赛:

{ "x": 123 }

比赛:

{ "x": 123, "y": 456 }

难道 匹配:

{ "x": 123, "y": 456, "z": 789 }

问题答案:

您可以通过使用not关键字来实现。如果not架构验证,则父架构将不验证。

{
    "type": "object",
    "properties": {
        "x": { "type": "integer" }
    },
    "required": [ "x" ],
    "not": { "required": [ "z" ] }
}


 类似资料: