重复序列化和反序列化会创建重复项

重复序列化和反序列化会创建重复项,第1张

重复序列化和反序列化会创建重复项

发生这种情况的原因是由于两件事的结合:

  1. 您的类构造函数会自动将默认项添加到其各自的列表中。Json.Net调用这些相同的构造函数在反序列化期间创建对象实例。
  2. Json.Net的默认行为是在反序列化期间重用(即添加到)现有列表,而不是替换它们。

要解决此问题,您可以更改代码,以使构造函数不会自动将默认项添加到列表中,或者可以配置Json.Net以在反序列化时替换列表,而不是重复使用它们。可以通过将

ObjectCreationHandling
设置更改
Replace
为如下所示来完成后者:

JsonSerializerSettings settings = new JsonSerializerSettings();settings.ObjectCreationHandling = ObjectCreationHandling.Replace;var database = JsonConvert.DeserializeObject<Database>(www.text, settings);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5615252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存