2013-01-09 4 views
3

어떻게 JSON.stringify 다음 데이터 구조가 가능합니까? 이 객체가 document에와 a 태그에 대한 참조를 포함처럼타임 스탬프 객체 문자열 화

var Records = { 
    1357775376232: { 
     pageX: 0, 
     pageY: 0, 
     scrollLeft: 0, 
     scrollTop: 0, 
     target: #document, 
     type: null, 
     value: undefined 
    }, 
    1357775376243: { 
     pageX: 69, 
     pageY: 10, 
     scrollLeft: 0, 
     scrollTop: 0, 
     target: <a>, 
     type: "click", 
     value: "" 
    } 
    // ...etc... 
}; 
+1

작동하지 않는'JSON.stringify()'는 무엇인가? – Pointy

+0

@Pointy 아니요,'Uncaught TypeError : 원형 구조체를 JSON으로 변환합니다. '그리고 [that] (http://stackoverflow.com/a/9382383/1250044)도 도움이되지 않습니다 ... – yckart

+0

글쎄, 비 직렬화 가능 객체가 있습니다. ** ** 정확히 ** 어떤 물체가 "... etc ..."부분없이 보이면 누군가가 도움을 줄 수 있습니다. – Pointy

답변

0

대신 일반 객체를 사용 : 나는 (범용) 또는 (당신이 시도하고 정확하게) 냉동을 강조 추천 요소들.

4

는 것 같습니다. 이러한 참조를 제거 할 때까지 직렬화 할 수 없습니다.

간단한 솔루션입니다 :

var arrayWithRefs = [...]; 
var arrayWithout = []; 

for (var i = 0; i < arrayWithRefs.length; i++) { 
    arrayWithout[i] = { 
    safeProperty: arrayWithRefs[i].safeProperty; 
    // copy whatever you want, omitting document references 
    }; 
} 

var serialized = JSON.stringify(arrayWithout); 

그리고 물론

당신은 당신이 원하는 단지 특성을 따려고하는 데 도움이 될 수 있습니다 라이브러리가 있습니다. 는 XPath를 사용

+0

전체 공개, 저는이 라이브러리의 저자입니다 : https://github.com/hunterloftis/cryo - 'JSON on steroids'- 문제없이 DOM 요소를 문자열처럼 처리 할 수 ​​있습니다. 단위 테스트가 많은 JSON.stringify/JSON.parse를 대체합니다. – hunterloftis

관련 문제