Условно применить подсхему на основе свойства другого файла - PullRequest
0 голосов
/ 14 января 2020

Позволяет ли json -схема иметь условную подсхему, основанную на значении свойства из другого файла?

Пример:

Jsons:

другой. json

{
  "honey": "honey"
}

основной. json

{
  "hello": "abc"
}

схема

{
  "type": "object",
  "properties": {
    "hello": {
      "type": "string"
    }
  },
  "required": ["hello"],
  "if": {
    "properties": {
      "another.json#/honey": {       -->> is this possible
        "const": "honey"
      }
    }
  },
  "then": {
    "properties": {
      "hi": {
        "type": "string"
      }
    },
    "required": ["hi"]
  }
}

Основное. json должно не пройти проверку с криком требуется "hi" , так как другой. json имеет значение "honey" в качестве значения.

Теперь изменив другой. json на

{
  "honey": "not_honey"
}

Должен пройти валидацию для основного. json

Вопрос

1 Ответ

0 голосов
/ 14 января 2020

Нет. JSON Схема не имеет представления о файлах, только «экземпляр JSON», из которых только один может быть проверен за один раз. Вам нужно было бы как-то их объединить.

...