코스의 데이터를 직렬화하려고합니다. 나는 코스 ID (C_id)와 코스 이름 (C_Name)을 얻는다. 나는 학생의 반발이라는 또 하나의 것을 얻고있다. 이것을 직렬화하려고하면 코스에 등록한 학생의 중첩 목록을 가져올 수 없습니다. 위의 코드에서 중첩 된 객체 직렬화 (목록)
var u = (from g in t.courses
select g)
.ToList();
List<course> ui = u
.Select(d => new course()
{ C_Name = d.C_Name,
C_Id = d.C_Id,
student = d.student
})
.ToList();
ASCIIEncoding objASCIIEncoding = new ASCIIEncoding();
string strData = JsonConvert
.SerializeObject(ui, Formatting.Indented, new JsonSerializerSettings()
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
});
나는 중첩으로
students
목록을 적절한 데이터를 얻고 있지만,이 라인
string strData = JsonConvert.SerializeObject(ui, Formatting.Indented, new JsonSerializerSettings()
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
});
가 실행될 때 난 단지 코스 ID (C_ID) 물론 이름 (C_Name)을 얻는다. 중첩 된 student
목록은 직렬화되지 않습니다. 문서에서
참조 루프 처리 및 무한 중첩이있는 데이터와 관련이있는 것 같습니다. 자세한 내용은 http://stackoverflow.com/questions/11979637/what-does-referenceloophandling-ignore-in-newtonsoft-json-exactly-do를 참조하십시오. – link64