【发布时间】:2020-01-28 15:22:52
【问题描述】:
我必须遵循 JSON 架构:
{
"type": "object",
"required": [
"type",
"title"
],
"properties": {
"type": {
"enum": [
"journal",
"book",
"generic"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
}
}
根据该架构,以下对象是有效的:
{type: 'journal', title: 'foo'}
而这个不是:
{type: 'qux', title: ''}
有没有一种方法可以重用该架构的子集,以便我可以也单独验证类型和标题?
例如(伪代码)
const Ajv = require('ajv');
const ajv = new Ajv;
ajv.addSchema(/* see schema above */);
const validate_document = ajv.compile(/* see schema above */);
const validate_type = ajv.compile(/* reuse corresponding subset */);
const validate_title = ajv.compile(/* reuse corresponding subset */);
validate_document({type: 'qux', title: ''}); // false
validate_type('qux'); // false
validate_title(''); // false
【问题讨论】:
标签: javascript jsonschema ajv