Многоуровневая / вложенная проверка JSON-схемы AJV - PullRequest
0 голосов
/ 16 января 2019

Использование схемы

{
  "type": "object",
  "required": [     
      "person", 
      "animal"
  ],
  "person": {
      "title": "person",
      "type": "object",
      "required": [
          "name"
      ],
      "properties": {
         "name": {
            "type": "string"
         }
      }
  },
  "animal": {
    "title": "animal",
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        }
    }
  }
}

Эта схема действительна при сравнении с этим объектом

{
  "person": 0, 
  "animal": "dog"
}

Я хочу, чтобы он проверялся только для свойств объекта person (поскольку он также имеет требуемые свойства). Например, допустимо только следующее:

{
  "person": {
     "name": "myName"
  },
  "animal": "dog"
}

Как я могу убедиться, что вложенные объекты проверены в моей схеме с помощью AJV?

1 Ответ

0 голосов
/ 16 января 2019

В вашей схеме вам нужно поместить animal и person внутри properties объекта.

В настоящее время, поскольку эти ключи свойств не находятся внутри объекта properties, они классифицируются как неизвестные ключевые слова и игнорируются.

В противном случае, да, вы правильно поняли.

...