Javascript 如何在解码和编码后检查JSON的相等性

Javascript 如何在解码和编码后检查JSON的相等性,javascript,json,decode,encode,equality,Javascript,Json,Decode,Encode,Equality,它们显然是相等的,但为什么它在代码中不起作用呢?因为您正在将对象引用彼此进行比较。当您反序列化原始序列化的JSON对象时,将返回一个新的不同对象。两者具有相同的内容,但它们是不同的对象实例。如果比较JSON.stringify()版本,您将得到一个匹配项 数据={ json:“是生活” }; anoth=JSON.parse(JSON.stringify(data)); 如果(数据==anoth){ 警报(“对象相同”) }否则{ 警报(“对象不相同”) } if(JSON.stringify

它们显然是相等的,但为什么它在代码中不起作用呢?因为您正在将对象引用彼此进行比较。当您反序列化原始序列化的JSON对象时,将返回一个新的不同对象。两者具有相同的内容,但它们是不同的对象实例。如果比较JSON.stringify()版本,您将得到一个匹配项

数据={
json:“是生活”
};
anoth=JSON.parse(JSON.stringify(data));
如果(数据==anoth){
警报(“对象相同”)
}否则{
警报(“对象不相同”)
}
if(JSON.stringify(data)=JSON.stringify(anoth)){
警报(“内容相同”)
}否则{
警报(“内容不相同”)
}

警报(JSON.stringify(data)+“\n”+JSON.stringify(anoth))
您应该比较两个对象是否相等,但在您的示例中,您只比较引用

data = {
    json: 'is life'
};

anoth = JSON.parse(JSON.stringify(data));

if (data == anoth){
    console.log("yes")
}else{
    console.log("nah")
}

console.log(data, anoth)