У меня есть массив. Это может содержать несколько объектов testObject.
"testObject": {
"$id": "#/properties/items/testObject",
"type": "array",
"minItems": 1,
"items": {
"$id": "#/properties/testObject/items",
"type": "object",
"required": [
"id",
"testObjectType",
"title"
],
"properties": {
"id": {
"$id": "#/items/id",
"type": "integer"
},
"testObjectType": {
"$id": "#/items/testObjectType",
"type": "string"
},
"title": {
"$id": "#/items/title",
"type": "string"
}
}
}
Допустим, я хочу убедиться, что в зависимости от testObjectType допускается другой заголовок.
"allOf": [
{
{
"if": {
"properties": {
"testObject": {
"properties": {
"testObjectType": {
"const": "typ1"
}
}
}
}
},
"then": {
"properties": {
"testObject": {
"properties": {
"title": {
"const": "testTitle 1"
}
}
}
}
]
Например, если бы я сделал это таким образом, я могу проверить только конкретный c элемент. Но если testObject является массивом в другом объекте, мне нужно иметь эту проверку для каждого элемента.
Чтобы сделать его более конкретным. Это входные данные:
{
"root-element": [
{
"id": 1,
"testObjectType": "testObject 1",
"title": "title 1"
},
{
"id": 2,
"testObjectType": "testObject 2",
"title": "title 2"
},
{
"id": 3,
"testObjectType": "testObject 3",
"title": "title 3",
"anotherAttribute": "anotherValue"
}
]
}
В случае, если testObjectType имеет значение «testObject 3», я хочу убедиться, что есть еще один атрибут.
Вторая проверка для «testObject 2», title должен быть «title 2». Я вижу проблему в том, что все эти объекты находятся в массиве и не знают, как проверить каждый элемент