Javascript Ajv JSON模式验证器行为怪异
我用以下代码解析了JSON文件和模式:Javascript Ajv JSON模式验证器行为怪异,javascript,node.js,ajv,Javascript,Node.js,Ajv,我用以下代码解析了JSON文件和模式: const parsedData = JSON.parse(fs.readFileSync(jsonDataPath, 'utf8')); const parsedSchema = JSON.parse(fs.readFileSync(jsonSchemaPath, 'utf8')); let ajvInstance = ajv({ allErrors: true }); let valid = ajvInstance.valid
const parsedData = JSON.parse(fs.readFileSync(jsonDataPath, 'utf8'));
const parsedSchema = JSON.parse(fs.readFileSync(jsonSchemaPath, 'utf8'));
let ajvInstance = ajv({ allErrors: true });
let valid = ajvInstance.validate(parsedSchema, parsedData);
console.log(valid);
if (valid) {
console.log("User data is valid");
} else {
console.log("User data is INVALID!");
console.log(ajvInstance.errors);
}
当我运行代码时,输出是“用户数据有效”,我对该语句有疑问
然后我尝试将结果原子化(实际输出在//)之后:
这简直把我吓坏了。这里发生了什么?不看一下您的模式就很难判断。然而,AJV总是返回
true
并不一定奇怪。最后请参见注意,只需使用require('./myfile.json')
(无需使用json.parse()
+fs.readFileSync()
)即可在Node.js中需要*.json文件。
console.log(parsedSchema.flag); // true
console.log(parsedData.flag); // "0"
console.log(ajvInstance.validate(parsedSchema.flag, parsedData.flag)); // true
console.log(parsedSchema.flag == parsedData.flag); // false
console.log(parsedSchema.flag === parsedData.flag); // false