Я хочу, чтобы моя схема JSON была проверена только на заданных входных данных - PullRequest
0 голосов
/ 29 мая 2019

У меня есть схема JSON с несколькими условиями if-then в блоке allOf. Эта схема JSON должна проверяться только на основе заданных входных данных. Это означает, что на основе входных данных json соответствующее условие if-then должно быть проверено, а остальные условия if-not не должны выполняться до тех пор, пока я не предоставлю соответствующие значения во входном json.

Я пытался использовать anyOf и oneOf, но любой из них делает свою работу.

У меня есть следующая схема JSON,

{
"allOf": [
    {
      "if": {
        "properties": {
          "fruit": {
            "enum": [
              "Yes"
            ]
          }
        }
      },
      "then": {
        "required": [
          "apple"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "tree": {
            "enum": [
              "Yes"
            ]
          }
        }
      },
      "then": {
        "required": [
          "oak"
        ]
      }
    }
  ]
}

и я использую приведенный ниже ввод,

{
  "fruit": "Yes",
  "apple": "for health"
}

Я использую следующую ссылку для подтверждения вышеизложенного. https://www.jsonschemavalidator.net/

Итак, согласно схеме json, у меня есть два условия if-then, но в моем входном json я дал только одну информацию, связанную с условием if-then. Но я получаю ошибки, и входной файл заставляет меня добавить хотя бы одно значение из другого условия if-then. Я не хочу добавлять все значения в мой ввод json, поэтому, будьте добры, помогите мне, если есть какой-то способ сделать это, и предложите мне другой подход, если я делаю это неправильно.

...