Я хочу добавить условно необходимое на основе значения какого-либо другого свойства. 'companyName' и 'companyAddress' должны требоваться, только если 'isInexperienced' значение ложно.
Схема
{
"type": "object",
"properties": {
"previous_employment_section": {
"type": "array",
"items": {
"type": "object",
"properties": {
"companyAddress": {
"type": "string"
},
"companyName": {
"type": "string"
}
},
"if": {
"#/properties/isInexperienced": {
"const": false
}
},
"then": {
"required": [
"companyName",
"companyAddress"
]
}
}
},
"isInexperienced": {
"type": "boolean"
}
}
}
Данные
{
"previous_employment_section": [],
"isInexperienced": true
}
Я не совсем понимаю цель вашей исходной схемы, но как насчет этой?
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"previous_employment_section": {
"type": "array",
"items": {
"type": "object",
"properties": {
"companyAddress": {
"type": "string"
},
"companyName": {
"type": "string"
}
}
}
},
"isInexperienced": {
"type": "boolean"
}
},
"if": {
"properties": {
"isInexperienced": {
"const": false
}
}
},
"then": {
"properties": {
"previous_employment_section": {
"items": {
"required": [
"companyName",
"companyAddress"
]
},
"minItems": 1
}
}
}
}
Это невозможно. Нам нужно иметь «если» на более высоком уровне, «свойства» могут быть вложенными. Можно использовать метод Лидпони.