如何明确约束JSON Schema数组中的多个项?

时间:2016-07-29 08:50:12

标签: json schema

我正在创建一个JSON模式,并希望定义一个只包含某些项目的完全匹配的数组:

JSON(代码段)的一种示例如下:

{
   "results":
   [
       { "id": 1, "test": true, "volts": 700, "duration": 100 },
       { "id": 2, "test": false }
   ]
}

这似乎是 OneOf “additionalProperties”:false 的组合,但我无法弄清楚应该如何使用它。到目前为止,我有:

{
  "results": 
  {
    "type": "array",
    "items": 
    {
      "type": "object",
      "OneOf": 
      [
        {
          "id":    { "type": "integer" },
          "test":  { "type": "boolean" },
          "volts": { "type": "integer" },
          "duration": { "type": "integer" }
        },
        {
          "id":    { "type": "integer" },
          "test":  { "type": "boolean" }
        }
      ],
      "additionalProperties": false          
    }
  }
}

我正在使用http://www.jsonschemavalidator.net/来检查我的JSON。

但是当我针对我的架构验证以下JSON时,它说它是有效的;网站不正确或我做错了什么?

{
  "results": [
    {
      "fred": 7,
      "id": 7,
      "test": true,
      "volts": 7,
      "duration": 7
    },
    {
      "fish": 7
    }
  ]
}

0 个答案:

没有答案