JSON 数据验证失败

我没有通过 JSON 数据验证测试,我应该在其中创建一个具有名称、员工 ID、经验、公司和名称属性的 JSON 对象人员,并使用循环访问它。我只是在学习 JSON,我认为问题在于它也需要 nodejs 的知识,这里是 json 文件 (data.json)


'{"Name":"someName","EmployeeID":123,"Experience":123,"Company":"somecompany","Designation":"someDesignation"}'

这是js文件:


let jsonData = require('./data.json');

let persons=JSON.parse('./data.json', jsonData);

for(i in persons){

    console.log(persons.i);

}

这是验证文件:


const Joi = require('joi');

const fss =require('fs');


const schema = Joi.object().keys({

    Name: Joi.string().required(),

    EmployeeID: Joi.number().required(),

    Experience: Joi.number().required(),

    Company: Joi.string().required(),

    Designation: Joi.string().required()

});


const personSchema=Joi.object().keys({

  persons:schema.required()

}).required();


var data;


try{

 data = require("./data.json");    

}catch(e)

{

 data={};

}


var XMLWriter = require('xml-writer');

    xw = new XMLWriter;





// You can also pass a callback which will be called synchronously with the validation result.

Joi.validate(data, personSchema, function (err, value) {

if(err==null)

{   

  console.log("JSON data is valid, Status: Passed");

}else{

    console.log("JSON data is invalid. Status: failed")

}


});

我收到JSON 数据无效。状态:失败


Helenr
浏览 272回答 1
1回答

胡说叔叔

根据您需要创建的内容的描述,您似乎需要这些对象的 Array所以,JSON 应该是[{"Name":"someName","EmployeeID":123,"Experience":123,"Company":"somecompany","Designation":"someDesignation"}]那么“JS”将是let persons=require('./data.json');for(let i in persons){    console.log(persons[i]);}验证器将是const Joi = require('joi');const fss = require('fs');const schema = Joi.object().keys({        Name: Joi.string().required(),        EmployeeID: Joi.number().required(),        Experience: Joi.number().required(),        Company: Joi.string().required(),        Designation: Joi.string().required()    });const personSchema = Joi.array().items(schema.required()).required();var data;try {    data = require("./data.json");} catch (e) {    data = [];}var XMLWriter = require('xml-writer');xw = new XMLWriter;// You can also pass a callback which will be called synchronously with the validation result.Joi.validate(data, personSchema, function (err, value) {    if (err == null) {        console.log("JSON data is valid, Status: Passed");    } else {        console.log(err, "JSON data is invalid. Status: failed")    }});如果验证器文件应该保持不变,那么 JSON 需要如下{"persons":{"Name":"someName","EmployeeID":123,"Experience":123,"Company":"somecompany","Designation":"someDesignation"}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript