Ниже приведен пример схемы JSON, которую я пытаюсь скомпилировать и использовать для проверки. Для этого я использую 'ajv' npm module.Почему Ajv не может решить ссылку во время компиляции?
Вот код, который я бег ...
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 #
Кто-нибудь еще запустить в таком роде проблемы? Любая идея, что я могу делать неправильно?
Это устранило проблему, но вы могли бы объяснить, почему «#/определения/телефон» работал, а «# определения/телефон» - нет? Вся документация от разработчика подразумевает иное. Благодаря! – ra9r
В какой документации вы ссылаетесь? Я разработчик btw :) Это спецификацией, ссылка в текущей схеме равна #, за которой следует указатель JSON, указатель JSON начинается с «/» – esp
Отличная библиотека, спасибо за вклад в нее для остальных из нас. Что касается вашего вопроса, я мог бы поклясться, что я видел это в примерах на сайте json-schema.org, но для жизни меня не могу найти примеров в качестве доказательства. Поэтому я должен ослепнуть или сумасшедший. Спасибо за быстрый ответ. – ra9r