2015-11-25 33 views
0

我有一個JSON模式和一個示例輸入。我需要編寫一個通用模式來處理數組,而不管數組的長度。目前,我需要爲數組中的每個索引編寫模式。陣列的JSON模式

JSON模式

{ 
    "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指數應該是多的2和休息可以有2和5,並且兩個倍數」 0陣列'指數是必需的。 –

+0

啊!我會編輯來回答這個問題。 – cloudfeet

+1

您還需要包含'「minItems」:1'來使'0'索引成爲必需。 – Jason