带有特定对象数组的JSON Schema验证器(不同类型)

时间:2017-05-08 17:30:15

标签: json jsonschema json-schema-validator

我有以下要验证的JSON数据。

[
    { "fieldType": "oneThing" },
    { "fieldType": "anotherThing" },
    { "fieldType": "oneThing" }
]

我目前的(非工作)架构是:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "oneOf": [
      { "$ref": "#/definitions/oneThing" },
      { "$ref": "#/definitions/anotherThing" }
    ]
  },
  "definitions": {
    "oneThing": {
      "type": "object",
      "properties": {
        "fieldType": {
          "type": "string",
          "pattern": "oneThing"
        }
      },
      "required": [
        "fieldType"
      ]
    },
    "anotherThing": {
      "type": "object",
      "properties": {
        "fieldType": {
          "type": "string",
          "pattern": "anotherThing"
        }
      },
      "required": [
        "fieldType"
      ]
    }
  }
}

我收到以下错误,但我看不出我做错了什么。

[] Object value found, but an array is required

更多上下文:我正在基于JSON配置生成动态HTML表单。 HTML表单将具有一组特定的有效字段类型,并且配置中可能多次存在相同的字段类型,因此oneThing在上面的示例json中出现多次。

1 个答案:

答案 0 :(得分:0)

事实证明,这与我的JSON架构无关,而是与我如何调用正在解析架构的库有关。

我使用https://github.com/justinrainbow/json-schema并将错误的数据类型传递给了该类。杜!