2016-03-14 205 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))