2015-11-25 6 views
0

У меня есть схема JSON и образец ввода. Мне нужно написать общую схему, которая может обрабатывать массив независимо от длины массива. В настоящее время мне нужно написать схему для каждого индекса в массиве.Схема JSON для массива

JSON Schema

{ 
    "title":"Example", 
    "$schema":"http://json-schema.org/draft-04/schema#", 
    "type":"array", 
    "items":[ 
    { 
    "oneOf":[ 
     { 
     "multipleOf": 3 
     } 
    ] 
    }, 
    { 
     "oneOf":[ 
     { 
     "multipleOf": 3 
     }, 
     { 
     "multipleOf": 5 
     } 
    ] 
    } 
    ] 
} 

Пример ввода

[ 
    3, 
    5 
] 

Мне нужна схема, которая может проверить [1,3,5,6,3,5,4,......] (независимо от длины)

ответ

1

Если поместить схему непосредственно в items, вместо использования массива, то ap курсирует ко всем элементам массива:

{ 
    "type": "array", 
    "items": { 
     "oneOf": [ 
      {"multipleOf": 3}, 
      {"multipleOf": 5} 
     ] 
    } 
} 

Если вы хотите, чтобы описать первоначальный набор элементов с определенными схемами, и все следующие из них с общими один, а затем использовать массив с items, а схема в additionalItems:

{ 
    "type": "array", 
    "items": [ 
     {"multipleOf": 3}, 
     ... 
    ], 
    "additionalItems": { 
     "oneOf": [ 
      {"multipleOf": 3}, 
      {"multipleOf": 5} 
     ] 
    } 
} 
+0

Что делать, если я хочу схему для проверки массива, в котором «0'th индекс массива должен быть кратен 2 и остальные могут иметь как кратные 2 и 5. а» 0 необходим. –

+0

Ах! Я отредактирую, чтобы ответить на это. – cloudfeet

+1

Вам также необходимо включить '' minItems ': 1', чтобы сделать нужный индекс '0'th. – Jason

Смежные вопросы