1
我无法验证对一个模式的JSON:PHP的Json验证了Oneof给出了错误的JSON,其中两个属性中的一个必须存在
架构如下:
{
"type":"object",
"$schema": "http://json-schema.org/draft-03/schema",
"required":true,
"properties":{
"tagId": {
"type":"string",
"id": "tagId",
"required":true
},
"data_library": {
"type":"object",
"id": "data_library",
"properties":{
"info": {
"type":"object",
"id": "info_library",
"properties":{
"name": {
"type":"string",
"id": "name",
"required":true
},
"location": {
"type":"string",
"id": "location",
"required":true
},
"description": {
"type":"string",
"id": "description",
"required":true
},
"starttime": {
"type":"string",
"id": "starttime",
"required":true
},
"endtime": {
"type":"string",
"id": "endtime",
"required":true
},
"contact": {
"type":"string",
"id": "contact",
"required":true
}
}
},
"videos": {
"type":"array",
"minitems": "0",
"id": "videos",
"items":
{
"type":"string",
"required":true
}
},
"images": {
"type":"array",
"minitems": "0",
"id": "images",
"items":
{
"type":"string",
"required":true
}
}
},
"additionalProperties": false,
"minProperties": 1
},
"data_book": {
"type":"object",
"id": "data_book",
"properties":{
"info": {
"type":"object",
"id": "info_book",
"properties":{
"name": {
"type":"string",
"id": "name",
"required":true
},
"genre": {
"type":"string",
"id": "genre",
"required":true
},
"description": {
"type":"string",
"id": "description",
"required":true
},
"agegroup": {
"type":"string",
"id": "agegroup",
"required":true
},
"author": {
"type":"string",
"id": "author",
"required":true
},
"publisher": {
"type":"string",
"id": "publisher",
"required":true
}
}
},
"videos": {
"type":"array",
"minitems": "0",
"id": "videos",
"items":
{
"type":"string",
"required":true
}
},
"images": {
"type":"array",
"minitems": "0",
"id": "images",
"items":
{
"type":"string",
"required":true
}
}
},
"additionalProperties": false,
"minProperties": 1
}
},
"oneOf": [
{"required": ["data_library"]},
{"required": ["data_book"]}
]
}
现在需要在json中支持data_library或data_book。然而,当我试图验证以下数据:
{
"tagId" : "DFGDASERTGSDG",
"data_book" : {
"info" : {
"name" : "Pagdandi",
"location" : "Kaccha",
"description" : "..",
"starttime" : "..",
"endtime" : "..",
"contact" : ".."
},
"videos" : [
"https://..."
],
"images" : [
"https://..."
]
}
}
我得到以下错误:
Property: data_book.info.genre Msg:Is missing and it is requiredProperty: data_book.info.agegroup Msg:Is missing and it is requiredProperty: data_book.info.author Msg:Is missing and it is requiredProperty: data_book.info.publisher Msg:Is missing and it is required
它是什么,我做错了什么?