JavaScript中可靠的JSON Schema验证器是什么是可扩展的 - 在某种意义上,你可以在解析元素时添加功能?
答案 0 :(得分:1)
JJV可让您添加custom checks
也许是这样的:
env.addCheck('cache', function (v, p) {
if(p) { //you don't need the 'if' if you didn't want to.
//your caching code goes here
return true; //to make sure it doesn't invalidate the check
}
});
json架构代码段
firstname: {
type: 'string',
cache: true //could be anything if you didn't want the if(p)
}
答案 1 :(得分:1)
答案 2 :(得分:1)
FieldVal支持带有结构化错误报告的同步和异步验证(browser / Node.js等)。它提供了许多常见的验证功能(即电子邮件,日期,网址等),并允许添加自定义功能。
异步验证的基本示例如下所示:
var params = {email: "email@example.com"}
var validator = new FieldVal(params);
//Email validation
validator.get_async("email", [BasicVal.email(), function(value, emit, callback) {
//Imitating asynchronous database call
setTimeout(function() {
callback({
error: 1001,
error_message: "Email already exists"
})
}, 5);
}]);
validator.end(function(error) {
if (error) {
//Do something about the error
} else {
//Everything is valid - proceed
}
});
阅读我们的blog post了解更多高级示例。
免责声明:我正在为该项目做出贡献。
答案 3 :(得分:0)
如果您不介意给JSON验证员JULES,我已经创建了一个https://github.com/stamat/jules并告诉我您的想法。有一种方法可以扩展JSON Schema:
jules.validator.new_keyword = function(value, keyword, schema) {
//define your validator here
return true;
};