2010-02-21 5 views
1

그래, this 코드로 작업하기 위해 JavaScriptSerializer를 사용하려고합니다. 그러나 마지막 줄에 도달하면 충돌이 발생합니다.DataTable을 JSON으로 변환하는 VB.NET 문제

Dim json As New String(sr.Serialize(dt)) 

이 오류 메시지가 표시됩니다. 타입 'System.Reflection.Module'의 객체를 직렬화하는 동안

순환 참조는 검출되었다.

이 문제를 해결하는 데 도움이되는 정보를 제공해 주시면 감사하겠습니다.

답변

4

순환 참조는 객체를 serialize하면 무한 루프가 발생 함을 의미합니다. 예를 들어 객체 "B"에 대한 1 대 1 참조가있는 객체 "A"를 직렬화하려고 시도하는 경우입니다.

JSON으로 직렬화하려는 데이터를 포함하는 클래스를 선언하여이 문제를 해결하십시오.

+0

이 작업을 수행하는 방법에 대한 모든 코드는 무엇입니까? – Saravanan

2

hkda150은 이미 말했듯이, 직렬화되도록 특별히 맞춤 설정된 클래스를 사용할 수 있습니다.

이렇게하면 관련된 전체 개체를 직렬화하는 대신 외래 키 값을 직렬화 할 수 있습니다. 따라서 유형이 B 인 속성 a.SomeB를 가진 객체 a를 직렬화하는 경우 종종 a.someB의 ID가 웹 페이지에 나타나기를 원할 것입니다. 분명히 이것이 당신의 특정 유스 케이스와 관련이 있는지를 말할 수 있을지 모르겠다.

현재 "비즈니스 개체"와 "직렬화를위한 개체"사이에 많은 매핑이있는 경우 AutoMapper을 사용하는 것이 좋습니다.

관련 문제