以下是我尝试编译并用于验证的JSON模式的示例。为此,我使用的是'ajv' npm module。
以下是我正在运行的代码......
var ajv = require('ajv')();
var contactSchema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Contact",
"type": "object",
"additionalProperties": false,
"properties": {
"work": { "$ref": "#definitions/phone" },
"home": { "$ref": "#definitions/phone" },
},
"definitions": {
"phone": {
"type": "object",
"required": ["number"],
"properties": {
"number": { "type": "string" },
"extension": { "type": "string" }
}
}
}
};
var validator = ajv.compile(contactSchema);
当我运行此代码时,我收到以下异常..
Error: can't resolve reference #definitions/phone from id #
还有其他人遇到过这类问题吗?知道我可能做错了吗?
答案 0 :(得分:3)
您的引用不正确(虽然它有效),它应该是#/ definitions / phone
或者,要使其工作,您可以在手机架构中添加"id": "#definitions/phone"
,但更常见的是使用"id": "#phone"
(并更新$ refs)。