У меня есть эта схема. Он проверяет комментарии и отлично работает на данный момент.JSON Schema - несколько типов
var schema = {
id: '',
type: 'object',
additionalProperties: false,
properties: {
text: {
type: 'string',
minLength: 1,
required: true
},
author: {
type: 'number',
required: true
}
}
};
Мой комментарий структура:
{
text: "Hello world!",
author: 1
}
Но теперь, мне нужно проверить массив объектов, как это. Так что я могу получить что-то вроде:
[
{
text: "Hello world! Im comment #1",
author: 1
},
{
text: "Super awesome comment #2!",
author: 0
}
]
Иногда я получаю один комментарий только таким образом я получаю один объект, и нужно использовать первую схему, но иногда я получаю массив комментариев, и моя схема не подходит.
Я слышал о схеме json anyOf
, но я не знаю, как это сделать.
джазе:
anyOf
schema-1 (object)
schema-2 (array with objects)
Любая помощь?
Спасибо.
Спасибо, это работает. почему бы не '' 'anyOf''' вместо' '' oneOf'''? – jBaumann
В этом случае они были бы похожи друг на друга, потому что это не может быть как объект, так и массив. Однако, в общем случае, если вы явно не хотите, чтобы это было возможно, использование 'oneOf' одинаково легко читается и более явственно относится к ожидаемому поведению. – cloudfeet