为什么不将JavaScript中的对象转换为JSON并返回该对象?
问题描述:
我有比较编码和解码,并从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相同的对象?
答
当您比较JS中的对象时,您正在检查它们是否是相同的对象而不是相同的对象。
转换为JSON会将对象转换为字符串。基于JSON数据,从JSON转换创建新对象。
如果要检查两个对象是否相同,请参见How do you determine equality for two JavaScript objects?。
[您如何确定两个JavaScript对象的相等性?](http://*.com/questions/201183/how-do-you-determine-equality-for-two-javascript-objects) –
你能比较你的对象在JSON格式? JSON.stringify(test_obj)=== JSON.stringify(t_prime) – Vertigo
@Vertigo我想我可以,这可能是最可靠的我这种情况。 – timw4mail