我发现在我的架构中使用Ajv
时,很难使用not
的错误消息。在我的用例中,我想验证两个不具有相同值的道具。考虑这个例子:
schema.json
{
"$schema": "http://json-schema.org/draft-06/schema",
"properties": {
"propA": {
"type": "string"
},
"propB": {
"type": "string",
"not": {
"const": {
"$data": "1/propA"
}
}
}
}
}
数据
{ propA: 'foo', propB: 'foo' }
输出
[ { keyword: 'not',
dataPath: '.propB',
schemaPath: '#/properties/propB/not',
params: {},
message: 'should NOT be valid' } ]
错误消息告诉我not
被拒绝,但真正相关的信息是const
不满意。
是否有人提示或解决方法如何为此用例获取有意义的错误消息?
答案 0 :(得分:1)
“const”实际上很满意,这就是“不”失败的原因。 错误对象包含数据和模式中的路径,并且使用“详细”选项,它将包含对导致失败的数据和模式的引用;从这些你应该能够解释错误。