1

我想检查 json 文件中多个条目的特定值。我写了一个 JsonSchema 但它没有显示正确的结果。

例如:

"student": [
                        {
                            "main": false, 
                            "name": "Robert"  
                        }, 
                        {
                            "main": true, 
                            "name": "Jannet"
                        },
                        {
                            "main": false, 
                            "name": "Julie"
                        }
                    ]

json 文件将被验证,如果它只有一个“main”为真,其余为假。如果它有多个 true 则不会验证。我尝试了以下 jsonSchema:

"student":{
                                "type":"array",
                                "items":{
                                    "type":"object",
                                    "required":["name","main"],
                                    "properties":{
                                        "name":{
                                            "type":"string"
                                        },
                                        "main":{
                                            "type":"boolean"
                                        }
                                    },
                                            "anyOf":[
                                        {
                                            "properties":{
                                                "main":
                                                {
                                                "enum":[true]

                                                }   
                                            }
                                        }
                                    ]
                                }
                            }
4

1 回答 1

0

不幸的是,这对于 JSON Schema 是不可能的。

JSON Schema 唯一可行的方法是,如果您还要求数组中的项目main: true是第一项。

如果您可以强制执行此操作,请在评论中告诉我,我将更新此答案以解释其工作原理。

于 2020-03-17T15:09:27.403 回答