我正在尝试使用tv4
. 它正在工作并且验证返回True
。
但是,在我的情况下,JSON 集合"first, second, and third"
不会一直可用。
在这种情况下如何编写模式?
我的 JSON 数据
{
"checked": "OK",
"result": {
"first": {
"label": "First Label",
"value": 1
},
"second": {
"label": "second Label",
"value": 34
},
"third": {
"label": "Third Label",
"value": 28
}
}
}
JSON 模式
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "http://example.com/example.json",
"type": "object",
"title": "The root schema",
"description": "The root schema comprises the entire JSON document.",
"default": {},
"required": [
"checked",
"result"
],
"properties": {
"checked": {
"$id": "#/properties/checked",
"type": "string",
"title": "The checked schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"OK"
]
},
"result": {
"$id": "#/properties/result",
"type": "object",
"title": "The result schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"required": [
"first",
"second",
"third"
],
"properties": {
"first": {
"$id": "#/properties/result/properties/first",
"type": "object",
"title": "The first schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"label": "First Label",
"value": 1
}
],
"required": [
"label",
"value"
],
"properties": {
"label": {
"$id": "#/properties/result/properties/first/properties/label",
"type": "string",
"title": "The label schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"First Label"
]
},
"value": {
"$id": "#/properties/result/properties/first/properties/value",
"type": "integer",
"title": "The value schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
1
]
}
},
"additionalProperties": true
},
"second": {
"$id": "#/properties/result/properties/second",
"type": "object",
"title": "The second schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"label": "second Label",
"value": 34
}
],
"required": [
"label",
"value"
],
"properties": {
"label": {
"$id": "#/properties/result/properties/second/properties/label",
"type": "string",
"title": "The label schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"second Label"
]
},
"value": {
"$id": "#/properties/result/properties/second/properties/value",
"type": "integer",
"title": "The value schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
34
]
}
},
"additionalProperties": true
},
"third": {
"$id": "#/properties/result/properties/third",
"type": "object",
"title": "The third schema",
"description": "An explanation about the purpose of this instance.",
"default": {},
"examples": [
{
"label": "Third Label",
"value": 28
}
],
"required": [
"label",
"value"
],
"properties": {
"label": {
"$id": "#/properties/result/properties/third/properties/label",
"type": "string",
"title": "The label schema",
"description": "An explanation about the purpose of this instance.",
"default": "",
"examples": [
"Third Label"
]
},
"value": {
"$id": "#/properties/result/properties/third/properties/value",
"type": "integer",
"title": "The value schema",
"description": "An explanation about the purpose of this instance.",
"default": 0,
"examples": [
28
]
}
}
}
}
}
}
}