SWITCH в схеме json (предложение v5)

Я новичок в npm ajv

У меня вопрос: сколько "switch" в объекте json? пример:

var schema = {
  "type": "object",
    "switch": [
        {
            "if": {
                "properties": {
                  "powerLevel": {"constant": false}
                }
            },
            "then": {
                "required": ["disbelief"]
            }
        },
        {
            "then": {
                "required": ["confidence"]
            }
        }
    ],
    "switch": [
        {
            "if": {
                "properties": {
                  "power": {"constant": false}
                }
            },
            "then": {
                "required": ["disb"]
            }
        },
        {
            "then": {
                "required": ["conf"]
            }
        }
    ]
};

Я тестирую схему выше по этой ссылке.

это просто проверить концевой выключатель. пожалуйста, помогите мне! Благодарность!


person tile    schedule 09.09.2016    source источник


Ответы (1)


Вы не можете переключать два ключевых слова в одном и том же объекте.

В этом конкретном случае вы можете объединить «дела» в один переключатель:

{
    "type": "object",
    "switch": [
        {
            "if": { "properties": { "powerLevel": {"constant": false} } },
            "then": { "required": ["disbelief"] }
        },
        {
            "if": { "properties": { "power": {"constant": false} } },
            "then": { "required": ["disb"] }
        },
        {
            "then": {
                "oneOf": [
                    { "required": ["confidence"] },
                    { "required": ["conf"] }
                ]
            }
        }
    ]
}

В общем случае вы можете использовать ключевые слова allOf, anyOf, oneOf для объединения двух схем, содержащих повторяющиеся ключевые слова между собой.

person esp    schedule 14.09.2016