使用express js测试两个json对象的相等性

使用express js测试两个json对象的相等性,json,express,Json,Express,我正在使用expressjs,我试图确定两个json对象是否相同,如果相同,我增加了一个先前定义的变量。这是我的密码。你能告诉我我做错了什么吗 app.get('/comp', function(req, res){ var body = { complexes: [ { "Réponse 1":req.query.rep1}, { "Réponse 2":req.query.rep2}, { "Répon

我正在使用expressjs,我试图确定两个json对象是否相同,如果相同,我增加了一个先前定义的变量。这是我的密码。你能告诉我我做错了什么吗

app.get('/comp', function(req, res){
var body = {

        complexes: [
            { "Réponse 1":req.query.rep1},
            { "Réponse 2":req.query.rep2},
            { "Réponse 3":req.query.rep3
            }]
    };

filePath = '/home/smath/'+req.query.id+'.json';

    console.log(filePath);

var score_comp = 0;

fs.readFile('/home/smath/reponses_comp.json', 'utf8', function (err, data) {
        var jsondata = JSON.parse(data);
        for (var i=0; i<jsondata.complexes.length; i++){
            if (body.complexes[i] == jsondata.complexes[i])
        {  score_comp++ }
    }
})
最简单的方法是:

JSON.stringify(obj1) === JSON.stringify(obj2)
最简单的方法是:

JSON.stringify(obj1) === JSON.stringify(obj2)

您不能使用
==
来比较两个数组或两个对象。这只会告诉你它们是否是同一个对象(它们不是),所以它永远不会看到相等。相反,如果是数组或对象,则必须比较各个数组元素或对象属性,以查看它们是否包含相同的内容。这里还有很多其他的答案和web上用于比较Javascript中两个对象的代码片段。您不需要编写自己的。您不能使用
==
来比较两个数组或两个对象。这只会告诉你它们是否是同一个对象(它们不是),所以它永远不会看到相等。相反,如果是数组或对象,则必须比较各个数组元素或对象属性,以查看它们是否包含相同的内容。这里还有很多其他的答案和web上用于比较Javascript中两个对象的代码片段。您不需要自己编写。无法保证属性在两个JSON字符串中以相同的顺序表示。无法保证属性在两个JSON字符串中以相同的顺序表示。