我试图实现这个条件:根据另一个字段的值需要字段,即如果请求带有" index":" true"然后存在" id"要求的元素:true。
以下是示例模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "test title",
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/Item"
},
"minItems": 0
}
},
"required": [
"data"
],
"definitions": {
"Item": {
"type": "object",
"properties": {
"id": {
"type": [
"integer",
"string"
]
},
"type": {
"type": "string"
}
}
}
}
}
如何实施?
任何指针都会有所帮助。
答案 0 :(得分:7)
你的样品chema对我来说很奇怪,但是对于票证说明中的验证案例你可以使用json shema的这一部分:
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"required": [
"index"
],
"properties": {
"index": {
"type": "boolean",
"enum": [false]
}
}
},
{
"type": "object",
"required": [
"index",
"id"
],
"properties": {
"index": {
"type": "boolean",
"enum": [true]
},
"id": {
"type": "boolean"
}
}
}
]
}
}
如果你想要验证一个参数,当其他参数等于某个值时,这个技巧对你有帮助。