Json模式无法验证/无法使用子模式

问题描述 投票:0回答:1

我有下面显示的json。我想让它针对必须具有zoo_unique_code的Zoo列表工作。但是可以有动物或鸟类,或者两者都有,也可以没有。但是我想用子模式验证它是否具有动物或鸟类,例如bird / animal_id。子模式似乎不起作用。

{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
    "animal_id": {
        "type": "string",
        "maxLength": 24
    },
    "bird_id": {
        "type": "string",
        "maxLength": 50
    },
    "zoo_bird_and_animal": {
        "type": "object",
        "anyOf": [{
                "properties": {
                    "zoo_bird": {
                        "type": "object",
                        "required": [
                            "zoo_bird_id"
                        ],
                        "properties": {
                            "zoo_bird_id": {
                                "$ref": "#/definitions/bird_id"
                            }
                        }
                    }
                }
            }, {
                "properties": {
                    "zoo_animal": {
                        "type": "object",
                        "required": [
                            "zoo_animal_id"
                        ],
                        "properties": {
                            "zoo_animal_id": {
                                "$ref": "#/definitions/animal_id"
                            }
                        }
                    }
                }
            }
        ]
    }
},
"properties": {
    "zoo_list": {
        "type": "array",
        "minItems": 1,
        "items": {
            "type": "object",
            "required": [
                "zoo_unique_code"
            ],
            "minProperties": 1,
            "properties": {
                "zoo_unique_code": {
                    "type": "string",
                    "enum": [
                        "NEWYORKZOO",
                        "PARISZOO"
                    ]
                }
            },
            "$ref": "#/definitions/zoo_bird_and_animal"
        }
    }
}
}

并使用]进行测试>

{
   "zoo_list": [
    {
     "zoo_unique_code": "NEWYORKCODE",
        "zoo_bird": {
            "zoo_bird_id": "newid"
        }
    }
   ]
}

任何建议将不胜感激。

我有下面显示的json。我想让它针对必须具有zoo_unique_code的Zoo列表工作。但是可以有动物或鸟类,或者两者都有,也可以没有。但是我想用sub ...

json validation jsonschema json-schema-validator
1个回答
0
投票

就我能解释您的架构而言,似乎您想在最后使用组合架构,而不是在同一项目中使用ref

© www.soinside.com 2019 - 2024. All rights reserved.