对象数组的 AJV 模式验证
Posted
技术标签:
【中文标题】对象数组的 AJV 模式验证【英文标题】:AJV schema validation for array of objects 【发布时间】:2017-10-23 07:48:00 【问题描述】:我正在尝试使用 AJV 模式验证来验证对象数组。下面是示例代码
var Ajv = require('ajv');
var schemaValidator = Ajv();
var innerSchema =
"type" : "object",
"properties" :
"c" :
"type" : "string"
,
"d" :
"type" : "number"
,
"required" : ["c"]
var innerArraySchema =
"type": "array",
"items" :
"#ref": innerSchema
var schema =
"type" : "object",
"properties" :
"a" :
"type" : "string"
,
"b" :
"type" : "string"
,
"obj" : innerArraySchema
,
"required" : ["a"]
var testSchemaValidator = schemaValidator.compile(schema);
var data = "a": "123","b" : "abc", "obj" : [
"d" : "ankit"
]
var valid = testSchemaValidator(data);
console.log(valid);
if(!valid)
console.log(testSchemaValidator.errors);
这里有什么我想念的吗。我不想在数组定义本身中添加属性对象。
【问题讨论】:
通过消除 ref 关键字解决了这个问题。 var innerArraySchema = "type": "array", "items" : innerSchema 【参考方案1】:使用以下方法解决了问题:
var innerArraySchema =
"type": "array",
"items" : innerSchema
【讨论】:
以上是关于对象数组的 AJV 模式验证的主要内容,如果未能解决你的问题,请参考以下文章