【发布时间】:2020-03-09 08:54:15
【问题描述】:
我有一个像这样的 json
"List": {
{"Color": "red"},
{}
},
"Color": "grey"
}
而这意味着默认颜色为灰色,并且列表中的对象可以覆盖此颜色。 只要存在默认颜色(同一级别列表中的属性),架构就应该允许 json 传递。如果没有,它只允许 json 通过模式检查,如果列表中的所有项目都指定了“颜色”。
我可以知道如何编写一个进行此检查的 json 模式吗?我知道 anyOf 但我认为它不能检查数组中的所有项目。
我试过了
{
"type": "object",
"properties": {
"List": {"type": "array", "items": {"$ref:" "#/definitions/Item"}},
"Color": {"type": "string"}
},
"definitions": {
"Item": {"type: "object", "properties": " {"Color": {"type": "string"}}}
},
"anyOf": {
{
"type": "object",
"required": ["Color"]
},
{
"type": "object",
"List": {
"type": "array",
"items": {"$ref": "#/definitions/Item", "required": ["Color"]}
}
}
}
但验证器似乎没有选择 anyOf[1] 所需的颜色。 请帮忙。!谢谢。
【问题讨论】:
-
您可以支付您尝试过的费用以便有人可以指导吗?
标签: json jsonschema