我正在尝试验证“动作”数组是否具有特定对象。每个对象都可以有自己的属性,具体取决于类型属性。动作数组可以从这些类型的对象中多次出现,而不仅仅是一次。
我的 JSON:
{
"actions": [
{
"type": "X",
"a": 1,
"b": 2,
"c": 3
},
{
"type": "Y",
"d": 1,
"e": 2,
"f": 3
}
]
}
在此示例中,类型 = X 的对象具有所需的属性 a、b、c。数组中的对象类型 Y 具有必需的属性 d、e、f。
我正在尝试使用 switch 关键字来验证这一点:
{
"type": "object",
"required": [
"actions"
],
"properties": {
"actions": {
"type": "array",
"items": {
"switch": [
{
"if": {
"properties": {
"type": {
"pattern": "^X$"
}
}
},
"then": {
"required": [
"a",
"b",
"c"
]
}
},
{
"if": {
"properties": {
"type": {
"pattern": "^Y$"
}
}
},
"then": {
"required": [
"d",
"e",
"f"
]
}
}
]
}
},
}
}
但是我仍然无法弄清楚如何使用 switch 关键字来验证数组的对象,其中每个对象类型都由对象中的属性指定,因此可以使用属性来标识对象类型。