Newtonsoft.json 中的 ReferenceLoopHandling.Ignore 到底是做什么的



谁能给我一个可以使用它的场景。我通过 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 序列化引用循环中的对象。如果对象是 嵌套但不是无限期的。

相关内容

  • 没有找到相关文章

最新更新