我正在尝试使用$ref
从另一个json架构导入定义,但收到以下错误:
can't resolve reference ../base/definitions.schema.json#/definitions/datetime from id #
{ "$schema": "http://json-schema.org/draft-06/schema#", "definitions": { "datetime": { "type": "string" }, "name": { "type": "string" }, } }
{ "$schema": "http://json-schema.org/draft-06/schema#", "properties": { "active": {"type": "boolean"}, "created_at": { "$ref": "../base/definitions.schema.json#/definitions/datetime" }, "name": { "$ref": "../base/base/definitions.schema.json#/definitions/name" }, "updated_at": { "$ref": "../base/definitions.schema.json#/definitions/datetime" } }, "required": ["name"], "type": "object" }
目录结构:
api -- base -- definitions.schema.json -- country -- country.schema.json
我通过使用绝对路径,file
网址和路径的其他几种组合尝试了几种组合。不知道发生了什么。
架构验证器:ajv@5.1.1
答案 0 :(得分:4)
您需要使用" addSchema"添加模式。方法。 $ ref相对于" id"属性(" $ id"在草案06中),ajv不会(并且不能)使用文件路径。
编辑:将$ ref部分添加到docs。