Newtonsoft不会对具有相同值,不同对象

时间:2016-09-03 16:33:43

标签: c# linq serialization json.net

在序列化来自服务器端的对象时,我在使用Newtonsoft时遇到了困难。

我有一个包含两个元素的集合List<ObjectExample>,如果该ObjectExample的某些元素是相同的,它只序列化其中一个元素。

以下示例:

(因为&#34; Nome da Entidade&#34;或者#34; Tipo de Entidade&#34;它们显示的不同,如果不是它只显示一个,但它们是不同的。)

&#34; Nome da Entidade&#34;和&#34; Tipo de Entidade&#34;引用数据库中的表。

enter image description here

我使用linq返回值,然后像这样序列化它们:

json = JsonConvert.SerializeObject(ins /*LIST*/, Formatting.Indented,
       new JsonSerializerSettings
       {
           PreserveReferencesHandling = PreserveReferencesHandling.Objects,
           DefaultValueHandling = DefaultValueHandling.Include,
           ObjectCreationHandling = ObjectCreationHandling.Auto
       });

1 个答案:

答案 0 :(得分:0)

我不理解您的示例,但看起来这种情况正在发生,因为您正在使用PreserveReferencesHandling.Objects。如果查看JSON,您可能会在其中看到$ref引用,引用已经序列化的对象。

Here是一些代码示例,说明如何在JavaScript中重新构建引用。