Проверить дочерний элемент в схеме JSON - PullRequest
0 голосов
/ 18 марта 2019

У меня есть следующие json:

{
  "firstName": "Mac",
  "countryOfBirth": "England",
  "cityOfBirth": "England",
  "nested": {
    "testValue": "someValue"
  }
}

Я хочу включить в схему следующее условие:

if countryOfBirth = "England" then nested.testValue should be present

Я пробовал следовать определению схемы, но оно не работает вообще. Требуемое условие пытается найти элемент на том же уровне countryBirth, а не на вложенном уровне. Есть идеи, как этого достичь?

{
  "$schema": "http://json-schema.org/draft-07/schema#",

  "type": "object",
  "properties": {
    "firstName": {
      "type": "string"
    },
    "countryOfBirth": {
      "type": "string"
    },
    "cityOfBirth": {
      "type": "string"
    },
    "nested": {
      "type": "object",
      "properties": {
        "testValue": {
          "$id": "properties/nested/properties/testValue",
          "type": "string"
        }
      }
    }
  },
  "required": ["countryOfBirth"],
  "if": {"properties": {"countryOfBirth": {"pattern": "^England$"}}},
  "then": {"required": ["cityOfBirth","#/properties/nested/properties/testValue"]
  }
} 
...