我有以下架构定义。图书馆是必需的。可能有很多。所以在该库对象中还有一些其他属性是必需的。但是,虽然我使用以下代码,但它没有验证。我的意思是不需要书名。作者的头衔是必需的。我该如何解决这个问题?
schema definition
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["library"],
"properties": {
"library": {
"type": "array",
"items": [
{"required":["title"],
"type": "object",
"properties": {
"title": {
"type": "string"
},
"author": {
"type": "string"
}
}
}
]
}}}
json输入
{"library":[]
}
预期的json输入
{"library":[{"title":"Max"}]
}
答案 0 :(得分:0)
我假设你想要" json输入"失败。
如果是这样,您的问题是您没有描述一个图书馆标题缺失的图书馆。相反,您的文档说“我是一个没有图书的图书馆”。
JSON失败:
{"library":[{}]}
或者,如果你想探测空库:JSON Schema有一个minLength属性。
答案 1 :(得分:0)
您的问题有点难以理解,但我注意到您使用的是items
关键字的元组形式。我确定这不是你想要的。尝试以下架构,我认为它将按照您的预期行事。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["library"],
"properties": {
"library": {
"type": "array",
"items": {
"required": ["title"],
"type": "object",
"properties": {
"title": {
"type": "string"
},
"author": {
"type": "string"
}
}
}
}
}
}