【问题标题】:Json schema variable propertiesJson 模式变量属性
【发布时间】:2016-08-09 01:29:51
【问题描述】:

基于某些条件,我的 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"
            ]
        }
    ]
}

【问题讨论】:

  • 条件是什么?如何解决问题取决于条件是字段的值还是字段的存在。

标签: jsonschema


【解决方案1】:

一些想法:

  • 您可以删除 oneOf ,在一个对象中定义您的 JSON,定义所有 3 个属性,但根据需要仅添加“provider-address”和“mask”
  • 定义"additionalProperties": falseoneOf下的第二个定义
  • oneOf 替换为anyOf

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多