2011-11-03 122 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?