JSON Schema是否支持对特定索引处的数组项的约束

时间:2014-05-27 01:35:32

标签: jsonschema

良好的模式语言将允许对值约束的高度控制。

然而,我对JSON Schema的快速印象是,不能指定一个项必须是具有单个允许类型的数组;例如,一个人不能明确地指定第一个项目必须是一个类型,而另一个类型的第二个索引中的项目。这个观点错了吗?

1 个答案:

答案 0 :(得分:2)

是的,可以这样做,这是一个指定了三种第一项类型的数组示例:

{
    "type": "array",
    "items": [
      {
        "type": "number"
      },
      {
        "type": "string"
      },
      {
        "type": "integer"
      }
    ]
}

验证架构时,第1,第2和第3项需要与其类型相匹配。

如果你的数组中有四个以上的项目,额外的项目没有指定的类型,所以它们不会失败验证,只要每个项目的类型是正确的,只有少于3个项目的数组将验证。

来源以及上周我创建json schema时发现的好读:Understanding JSON Schema(PDF格第24页的数组部分)

ps:英语它不是我的第一个语言,让我知道拼写,标点符号或语法上的任何错误