7
我已经看到了这个other question但它不完全相同,我觉得我的问题更简单,但只是不起作用。对象数组的JSON模式定义
我的数据是这样的:
[
{ "loc": "a value 1", "toll" : null, "message" : "message is sometimes null"},
{ "loc": "a value 2", "toll" : "toll is sometimes null", "message" : null}
]
我想在一个Node.js的项目中使用AJV的JSON验证,我已经尝试了几种模式,试图来形容我的数据,但我总是这样的错误:
[ { keyword: 'type',
dataPath: '',
schemaPath: '#/type',
params: { type: 'array' },
message: 'should be array' } ]
架构我已经试过这个样子的:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"loc": {
"type": "string"
},
"toll": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"loc"
]
}
}
我也尝试使用this online tool来生成架构,但这也不起作用,并且为了验证这应该输出正确的结果,我试着对jsonschemavalidator.net进行验证,但是这也给我带来了类似的错误:
Found 1 error(s)
Message:
Invalid type. Expected Array but got Object.
Schema path:
#/type
我甚至没有对数据进行验证,现在我只是试图验证模式本身。 –
@KyleFalconer,你的模式是有效的。我试过你链接的验证器。我认为你遇到的问题是它默认将'{}'放在“输入JSON”字段中。您需要将其更改为数组。该工具看起来像错误与模式有关,但它实际上是无效的数据。 – Jason
当然,你是对的!谢谢一堆! –