我使用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
代替覆盖集合。
答案 0 :(得分:1)
这取决于您的JSON格式(显然,如果您的消息包含日期,那么这将无效);但有一种可能性是在反序列化之前比较原始JSON。它肯定不是万无一失的,但是如果你从同一个源读取流,你可能会对字符串进行比较。
答案 1 :(得分:0)
您可以遍历集合并比较对象。
如果找到匹配项,则更新相应的对象,如果没有,则从数据绑定的源集合中添加或删除它。
您可以在后台线程上执行实际迭代以保持应用程序响应,但您仍然需要在UI线程上添加/删除源集合中的项目,因此这样做可能对性能来说毫无意义透视无论如何。