数组的JSON模式

时间:2015-11-25 05:09:56

标签: arrays json jsonschema

我有一个JSON Schema和一个示例输入。我需要编写一个通用模式,无论数组的长度如何,都可以处理数组。目前,我需要为数组中的每个索引编写模式。

JSON架构

app/views/devise

示例输入

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

我需要一个可以验证[ 3, 5 ] 的模式(无论长度如何)

1 个答案:

答案 0 :(得分:2)

如果您将架构直接放在items中,而不是使用数组,那么它适用于所有数组项:

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

如果要描述具有特定模式的初始项目集,以及具有通用模式的所有以下项目,则使用带有items的数组和additionalItems中的模式:

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