Схема JSON: как разрешить пустую строку для свойства с числовым типом?

В определении свойства мне нужно разрешить числовое или пустое строковое значение, подходит ли это выражение для этой цели?

"tprice":{"type":["number",{"enum":[""]}]}

Библиотека, которую я использую для проверки данных (Jsv4), генерирует ошибку для пустой строки:

Invalid type: string

в то время как я пытаюсь установить строку нулевой длины для этого свойства.

3

Решение

Я думаю, что решением для вас является использование anyOf в схеме.
Это схема, которая работает для вас:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"tprice": {
"anyOf": [
{
"type": "number"},
{
"type": "string",
"maxLength": 0
}
]
}
}
}

Я использовал jsonschemalint.com чтобы проверить это.

{
"tprice": 123
}

а также

{
"tprice": ""}

проверяет просто отлично.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]