2011-11-03 2 views
0

나는과 당신은 test_obj === t_prime이 혹은 test_obj == t_prime 사실 반환, true를 돌려 것이라고 생각할 것 자바 스크립트에서 JSON으로 또는 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); 
JSON

에서 인코딩 및 디코딩 개체를 비교하는 문제에 봉착하지만, 이것은 사실이 아니다.

왜 그런가요? 자바 스크립트 객체와 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?을 참조하십시오.

관련 문제