2011-11-03 120 views
0

我有比較編碼和解碼,並從JSON爲什麼不將JavaScript中的對象轉換爲JSON並返回該對象?

//Test data 
var test_obj = { 
    test:'value', 
    t:3, 
    x:[0,5,3] 
}; 
var t = JSON.stringify(test_obj); 
var t_prime = JSON.parse(t); 

你會認爲test_obj === t_prime將返回true, 或許test_obj == t_prime將返回true對象的問題,但這種情況並非如此。

這是爲什麼,我該如何驗證,我得到了一個JavaScript對象和JSON相同的對象?

+0

[您如何確定兩個JavaScript對象的相等性?](http://stackoverflow.com/questions/201183/how-do-you-determine-equality-for-two-javascript-objects) –

+0

你能比較你的對象在JSON格式? JSON.stringify(test_obj)=== JSON.stringify(t_prime) – Vertigo

+0

@Vertigo我想我可以,這可能是最可靠的我這種情況。 – timw4mail

回答

2

當您比較JS中的對象時,您正在檢查它們是否是相同的對象而不是相同的對象

轉換爲JSON會將對象轉換爲字符串。基於JSON數據,從JSON轉換創建新對象

如果要檢查兩個對象是否相同,請參見How do you determine equality for two JavaScript objects?