JSONSchema для проверки массива строк, содержащих указанные c элементы - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь указать массив строк, который должен содержать указанные c свойства.

Я хотел бы указать необходимые элементы для проверки.
В этом примере: uuid, template, selectedOn, updatedOn. Это должен быть массив строк.

Моя схема выглядит следующим образом:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "56544e3c-e197-4602-8457-2c01dc6b12c5",
  "title": "The Root Schema",
  "type": "object",
  "additionalProperties": false,
  "required": ["attributes"],
  "properties": {
    "attributes": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "string",
        "enum": ["uuid", "template", "createdOn", "updatedOn", "fields", "elements"]
      },
    }
  }
}

и должна соответствовать этому:

{
  "attributes": ["uuid", "template", "createdOn", "updatedOn"],
},

{
  "attributes": ["uuid", "template", "createdOn", "updatedOn", "fields", "elements"],
}

но не из-за отсутствия элемента 'updatedOn':

{
  "attributes": ["uuid", "template", "createdOn", "fields", "elements"],
}

Я уже много пробовал, но безуспешно. Кто-нибудь может дать мне подсказку?

1 Ответ

0 голосов
/ 28 февраля 2020

Вы можете использовать ключевое слово contains, чтобы убедиться, что массив содержит определенный элемент.

"allOf": [
  { "contains": { "const": "uuid" } },
  { "contains": { "const": "template" } },
  ...
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...