我正在使用System.Web.Extentions DLL中包含的System.Web.Script.Serialization.JavaScriptSerializer。我有幾個循環引用,如基本的多對多關係和父子關係。我該如何處理這些問題?我們有一個想法是用外鍵替換實際的對象引用。例如,而不是這樣的:我應該如何處理C#到JSON序列化和循環引用?
public class Node {
public Node Parent { get; set; }
public ICollection<Node> Children { get; set; }
}
我們這樣做:
public class Node {
public long ParentID { get; set; }
public ICollection<long> ChildrenIDs { get; set; }
}
我想過使用ScriptIgnore屬性但你怎麼連使用與許多一對多的關係?建議和建議,將不勝感激。謝謝!
編輯:下面是多對多關係的一些示例類。
public class Student {
public long StudentID { get; private set; }
public ICollection<Class> Classes { get; set; }
}
public class Class {
public long ClassID { get; private set; }
public ICollection<Student> Students { get; set; }
}
我該如何處理多對多關係? – OpticalDelusion
爲此,您必須使用Json.NET。它的最新版本支持序列化循環的n對n關係。在幫助中查看[保留對象引用](http://james.newtonking.com/projects/json/help/PreserveObjectReferences.html)。 –