我在使用通过相对URL引用子架构的父架构时遇到了问题。
这是我的父模式:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "The parent schema.",
"type": "object",
"properties": {
"parentProp1": { "type": "string"},
"parentProp2": { "$ref": "child.json#"}
}
}
这是我的孩子架构:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "The parent schema.",
"type": "object",
"properties": {
"childProp1": { "type": "number" }
}
}
这是我的数据:
{
"parentProp1": "one",
"parentProp2": {
"childProp1": 1
}
}
这是我在ajv-cli
时遇到的错误:
$ ajv -s parent.json -d parent-test.json
架构parent.json无效
错误:无法解析来自id#
的引用child.json#
我得到了一个类似的错误(child.json
无法解决)与其他3个验证器,这表明我的架构不正确。
我做错了什么?
答案 0 :(得分:1)
您是否将子架构作为依赖项传递?大多数验证器不会自动加载模式,需要明确告知每个模式。有一种方法可以用ajv-cli来做到这一点,虽然它现在逃避了我的语法。非常确定,如果你打印它会告诉你的命令的帮助。