簡體   English   中英

在Newtonsoft.json中,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM