2016-03-14 114 views
0
data = { 
    json: 'is life' 
}; 

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

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

console.log(data, anoth) 

之后检查JSON的平等他们显然是平等的,但为什么犯规它在代码如何解码和编码

回答

0

工作,因为你是比较互相反对的对象引用。当您反序列化原始序列化的JSON对象时,会返回一个新的和不同的对象。两者具有相同的内容,但它们是不同的对象实例。如果您比较JSON.stringify()版本,您将得到一个匹配。

data = { 
 
    json: 'is life' 
 
}; 
 

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

 
if (data == anoth){ 
 
    alert("Objects are same.") 
 
}else{ 
 
    alert("Objects are not same.") 
 
} 
 

 
if (JSON.stringify(data) == JSON.stringify(anoth)){ 
 
    alert("Content is same") 
 
}else{ 
 
    alert("Content is not same.") 
 
} 
 

 
alert(JSON.stringify(data) + "\n" + JSON.stringify(anoth))