Проверка схемы JSON: проверка массива объектов

Я получаю следующий JSON и хотел бы проверить его.

[
{
"remindAt": "2015-08-23T18:53:00+02:00",
"comment": "Postman Comment"},
{
"remindAt": "2015-08-24T18:53:00+02:00",
"comment": "Postman Comment"}
]

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

{
"type": "array",
"required": true,
"properties": {
"type": "object",
"required": false,
"additionalProperties": false,
"properties": {
"remindAt": {
"required": true,
"type": "string",
"format": "date-time"},
"comment": {
"required": true,
"type": "string"}
}
}
}

Это не работает. Это подтверждается истиной, даже если я удаляю комментарий из данных JSON. Я предполагаю, что структура моего файла схемы неверна.

Для проверки я использую следующую библиотеку
https://packagist.org/packages/justinrainbow/json-schema

Может кто-нибудь объяснить мне, что я делаю неправильно и как я правильно проверяю данные JSON?

заранее спасибо

1

Решение

В вашей схеме есть некоторые ошибки. Во-первых, вы используете свойства для объекта массива. свойства это предложение для объектов, а не массивов, поэтому оно будет игнорироваться.

От JSON-схема V4, требуется это массив.

Следующая схема потребует свойств remindAt и comment для всех элементов в массиве:

{
"type": "array",
"items": {
"additionalProperties": false,
"properties": {
"remindAt": {
"type": "string",
"format": "date-time"},
"comment": {
"type": "string"}
},
"required": ["remindAt", "comment"]
}
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]