По приведенному ниже примеру вопрос станет более понятным:
data = {"type": "object", "properties": {"product": {"type": ["boolean","string"]}}}
Включает типы boolean
и string
. Это работает, но я хочу ограничить строковую часть списком enums
:
["off", "on", "semi-on"]
Когда type
не является list
, оно работает, но когда я создаю его в виде списка, я не могу предоставить enum
для типа string
.
Пример ниже без boolean
тоже работает:
data = {"type": "object", "properties": {"product": {"type": "string", "enum": ["off", "on", "semi-on"]}}}
Следует разделить схему или есть другой способ для этого?
РЕДАКТИРОВАТЬ-1: Реальная схема выглядит следующим образом:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"is_trusted": {"type": "boolean"},
"is_active": {"type": "boolean"},
"addresses": {"type": "array"},
"attachments": {
"type": "object",
"properties": {
"send_web_push": {"type": "boolean"},
"receive_web_push": {"type": "boolean"}
},
"required": ["send_web_push", "receive_web_push"],
"additionalProperties": false
}
},
"required": ["is_trusted", "is_active", "addresses"],
"additionalProperties": false
}