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
當然,你是對的!謝謝一堆! –