Проверка схемы JSON для первого элемента массива - PullRequest
1 голос
/ 04 июня 2019

Я заинтересован в проверке некоторой логики JSON, чтобы проверить наличие определенного значения для первого элемента в массиве. Я хотел бы добиться этого через схему JSON, если это возможно. Например, я хотел бы проверить, является ли первый элемент «менеджером»:

  "employees": [
    {
      "manager": "Band35",
      "name": "Tom"
    },
    {
      "developer": "Band25",
      "name": "Kelly"
    },
    {
      "analyst": "Band25",
      "name": "Jack"
    }    
  ]
}

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Вы можете использовать ключевое слово items для проверки массива.

Если "items" является массивом схем, проверка успешна, если каждый элемент экземпляра проверяется по схеме в той же позиции, если есть.

Это означает, что у вас должно быть items: [firstSchema], если вы хотите проверить, что первый элемент в вашем массиве должен пройти firstSchema.

Например, если вы хотите, чтобы первый элемент в массиве был определенной строкой ...

{
  "items": [
    {
      "type": "string",
      "const": "myFirstItemString"
    }
  ]
}

Для проверки конкретного имени свойства объекта вам необходимо использовать propertyNames ключевое слово .

Вы можете легко проверить это, используя https://jsonschema.dev

0 голосов
/ 04 июня 2019

Десериализация JSON в объект (в зависимости от языка) и проверка значения свойства «manager» в первом элементе массива, было бы полезно, если бы вы более точно указывали, какой язык или инструменты вы используете (Пример в JS ниже)

var validated = (JSON.parse(json).employees[0].manager === "Band35");

Надеюсь, это поможет!

...