programing

Reference Loop Handling이란?뉴턴소프트에서 무시한다고요?

lastcode 2023. 3. 8. 21:14
반응형

Reference Loop Handling이란?뉴턴소프트에서 무시한다고요?

사용할 수 있는 시나리오를 제시해 주실 수 있나요?Reference Loop Handling에서 이해한 내용Ignore는 오브젝트A가 있고 B가 C를 참조하고 C가 다시 A를 참조하는 경우(A->B->C->A), 시리얼라이즈 시에 C와 A 사이에 엔드리스 루프가 발생하므로, 이하를 사용하지 않아도 됩니다.내 말이 맞니?

 JsonConvert.SerializeObject(data, 
     Formatting.Indented, 
     new JsonSerializerSetting()
         {
             ReferenceLoopHandling = ReferenceLoopHandling.Ignore 
         } 
 ));

위 내용을 사용하면 해결되는 자기 참조 루프 문제가 있습니다만, 위 행이 어플리케이션(크리티컬 미트)의 고기이기 때문에 정확히 무엇을 하고 있는지 알고 싶습니다.

이에 대한 매뉴얼은 http://james.newtonking.com/projects/json/help/html/SerializationSettings.htm 에서 구할 수 있습니다.

이 글에서 동작은 다음과 같이 기술되어 있습니다(나의 강조).

ReferenceLoopHandling.Error: 디폴트로는 Json 입니다.참조 루프가 발생하면 NET 에러가 발생합니다(그렇지 않으면 시리얼라이저는 무한 루프 상태가 됩니다).

: Json.NET은 참조 루프의 객체를 무시하고 시리얼화하지 않습니다ReferenceLoopHandling.Ignore.오브젝트가 처음 발견되었을 때 정상적으로 시리얼화되지만 오브젝트가 자신의 자녀 오브젝트로 검출되면 시리얼라이저는 시리얼화를 건너뜁니다.

ReferenceLoopHandling.Serialize: 이 옵션은 Json을 강제로 실행합니다.참조 루프의 객체를 시리얼화하는 NET.이는 개체가 중첩되어 있지만 무한히 중첩되지 않은 경우에 유용합니다.

언급URL : https://stackoverflow.com/questions/11979637/what-does-referenceloophandling-ignore-in-newtonsoft-json-exactly-do

반응형