В определении свойства мне нужно разрешить числовое или пустое строковое значение, подходит ли это выражение для этой цели?
"tprice":{"type":["number",{"enum":[""]}]}
Библиотека, которую я использую для проверки данных (Jsv4), генерирует ошибку для пустой строки:
Invalid type: string
в то время как я пытаюсь установить строку нулевой длины для этого свойства.
Я думаю, что решением для вас является использование anyOf
в схеме.
Это схема, которая работает для вас:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"tprice": {
"anyOf": [
{
"type": "number"},
{
"type": "string",
"maxLength": 0
}
]
}
}
}
Я использовал jsonschemalint.com чтобы проверить это.
{
"tprice": 123
}
а также
{
"tprice": ""}
проверяет просто отлично.
Других решений пока нет …