Json模式变量属性

时间:2016-08-09 01:29:51

标签: jsonschema

根据某些条件,我的IPV4可以有2个或3个属性,但这些属性是必需的。如何定义它。我试过下面的架构。我收到错误说" JSON对于来自' oneOf'的多个架构有效。有效的模式索引:0,1"

"IPv4Type": {
    "type": "object",
    "oneOf": [
        {
            "properties": {
                "provider-address": {
                    "type": "string",
                    "format": "ipv4"
                },
                "customer-address": {
                    "type": "string",
                    "format": "ipv4"
                },
                "mask": {
                    "type": "number"
                }
            },
            "required": [
                "provider-address",
                "customer-address",
                "mask"
            ]
        },
        {
            "properties": {
                "provider-address": {
                    "type": "string",
                    "format": "ipv4"
                },
                "mask": {
                    "type": "number"
                }
            },
            "required": [
                "provider-address",
                "mask"
            ]
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

一些想法:

  • 你可以删除oneOf,在一个对象中定义你的JSON,定义所有3个属性,但只添加" provider-address"和"掩码"根据需要
  • "additionalProperties": false
  • 下定义oneOf第二个定义
  • oneOf替换为anyOf