![](/img/trans.png)
[英]json.net doesn't ignore circular references when set to ReferenceLoopHandling.Ignore
[英]What does ReferenceLoopHandling.Ignore in Newtonsoft.json exactly do?
任何人都可以向我展示可以使用它的場景。 我通過ReferenceLoopHandling.Ignore理解的是,如果你有一個對象A引用對象B和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將會出錯(否則序列化程序將進入無限循環)。
ReferenceLoopHandling.Ignore
:Json.NET將忽略引用循環中的對象而不是序列化它們。 第一次遇到對象時,它將像往常一樣序列化,但如果對象作為自身的子對象遇到,則序列化程序將跳過序列化它。
ReferenceLoopHandling.Serialize
:此選項強制Json.NET序列化引用循環中的對象。 如果對象嵌套但不是無限期,這將非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.