如何在反序列化中检查对象是否已更改属性c#

时间:2018-05-21 12:45:37

标签: c# wpf mvvm

我使用A2,10.22,-57, A,10.23,-68, A2,10.24,-60, LB,10.25,-62, 每隔15秒从我的api获取数据。

此数据将转到here类型的可观察集合。

我无法使用JsonConvert,因为每隔15秒我就会将api分配给集合,如下所示:

TrulyObservableCollection

有没有办法检查DeserializeObject中的现有对象是否有变化,以便我可以修改我的集合?

所以我可以使用collection = JsonConvert.DeserializeObject<ManifestJSON>(uri) .Add代替覆盖集合。

2 个答案:

答案 0 :(得分:1)

这取决于您的JSON格式(显然,如果您的消息包含日期,那么这将无效);但有一种可能性是在反序列化之前比较原始JSON。它肯定不是万无一失的,但是如果你从同一个源读取流,你可能会对字符串进行比较。

答案 1 :(得分:0)

您可以遍历集合并比较对象。

如果找到匹配项,则更新相应的对象,如果没有,则从数据绑定的源集合中添加或删除它。

您可以在后台线程上执行实际迭代以保持应用程序响应,但您仍然需要在UI线程上添加/删除源集合中的项目,因此这样做可能对性能来说毫无意义透视无论如何。