programing

원형 구조를 JSON으로 변환 -- 불만족스러운 필드를 찾을 수 있는 방법이 있습니까?

linuxpc 2023. 3. 27. 21:05
반응형

원형 구조를 JSON으로 변환 -- 불만족스러운 필드를 찾을 수 있는 방법이 있습니까?

Chrome에서 오브젝트를 문자열화(...)하려고 하는데 (내가 아는 한) 그런 구조가 없는데도 "Converting circular structure to JSON"이라는 메시지가 계속 나옵니다.

코드를 수십 번 살펴봤는데 어떤 순환 참조도 찾을 수가 없어요크롬이 이 고통스러울 정도로 쓸모없는 에러 메시지 이외에 무엇에 대해 불평하는지 나에게 말하게 할 방법은 없을까?

이게 너무 뻔하다면 용서하세요.글을 쓸 때, 나는 당신이 무엇을 시도했는지 모릅니다.

삽입하다

console.log(the object); 

'object'를 전달 대상 개체로 바꾸기JSON.stringify()

앞에 이 행을 삽입하다JSON.stringify불러

콘솔 로그(시프트 제어 J)에서 객체를 찾습니다.콘솔 로그에서는 오브젝트에 ">" 기호가 태그 부착되어 있으며 이 기호를 클릭하여 필드로 전개할 수 있습니다.

다음과 같은 포인터가 있는 오브젝트에 대해 불만을 표시하고 있습니다.

A = [];
A[0] = A; 
JSON.stringify(A); // circular error

사용할 수 있습니다.dojox.json.ref순환 참조를 찾을 수 있습니다.이 코드는 JSON 표현으로 출력됩니다.objectWithCircularReferences:

require(["dojox/json/ref"], function(){
    console.log(dojox.json.ref.toJson(objectWithCircularReferences));
});

콘솔 출력에 "$ref" 서브스트링이 있으면 순환 참조를 찾는 데 도움이 됩니다.또는 다음과 같은 경우 이 json 출력을 글로벌 변수 ZZZ로 파이핑할 수 있습니다.

require(["dojox/json/ref"], function(){
    window.ZZZ = dojox.json.ref.toJson(objectWithCircularReferences);
});

그리고 당연히 사전에 도성도서관을 포함시켜야 합니다.html 파일:

<script src="//yandex.st/dojo/1.9.1/dojo/dojo.js"></script>

firebug 콘솔:

include("//yandex.st/dojo/1.9.1/dojo/dojo.js")

Chrome 콘솔:

SCRIPT = document.createElement('script');
SCRIPT.src = '//yandex.st/dojo/1.9.1/dojo/dojo.js';
document.body.appendChild(SCRIPT);

언급URL : https://stackoverflow.com/questions/7005205/converting-circular-structure-to-json-any-way-to-find-what-field-it-is-compla

반응형