我试图使用json模式验证JSON。在下面的json中,“工业”是“对象”类型,它是“不需要”的。然而,我需要了解是否在json中提供了“行业”。
这里是我的json模式
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"enum": ["Russia", "Canada"]
},
"name": {
"type": "string"
},
"industry": {
"$ref": "#/definitions/industry"
}
},
"required": [
"id",
"name"
],
"definitions": {
"industry": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string"
},
"codes": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"required": [
"codes",
"type"
],
"title": "industry"
}
}
} 这里是我的json
{
"id": "Russia",
"price": 10.50
} 我想知道在给定的json中是否存在"industry“对象,如果在json中存在"industry”对象。我需要做点别的。目前,如果我像上面一样发送json,并像下面的代码一样尝试下面的if语句。即使json中不存在“工业”对象,它也是正确的。我相信它是在考虑这样的“产业”目标,而不是空的。
"if":{
"properties": {"industry" : { "type": "object" }}
}, 任何验证“工业”对象是否存在于json对象中的解决方案都会有帮助。谢谢。
发布于 2020-05-25 19:54:42
如果属性不存在,包含"properties“的架构将计算为true。你想把什么作为你的“如果”的条件是“必需的”:
"if": {"required":["industry"]}, "then": { ... }
https://stackoverflow.com/questions/62008928
复制相似问题