JsonConvert.DeserializeObject 将属性保留为 null

如果反序列化对象的所有字段都保持为 null,无一例外,请检查您的基类是否具有 [DataContract] 属性,这会使 Json.net 忽略没有 [DataMember] 的每个属性。


很抱歉代码量很大,但我无法缩小导致问题的原因。


我有这个带有 AssetViewMo

属性是相同的,除了在此类中它们具有用于 WPF 绑定的带有 NotifyOfPropertyChange() 的支持字段。我将其中一些更改为具体类型,因为我认为这可能会引起一些麻烦,但没有帮助。

如果使用 AssetViewModel2 反序列化,结果的所有属性都将保持为 null,并且我没有得到任何异常。

我在 AssetViewModel2 中做错了什么?


紫衣仙女
浏览 327回答 1
1回答

萧十郎

问题出在基类中。我正在使用 Caliburn micros PropertyChangedBase。该类有一个 [DataContract] 属性,这使得有必要将 [DataMember] 属性添加到应该被反序列化的属性中。解决方案:复制没有 [DataContract] 属性的类并将 [JsonIgnore] 添加到 IsNotifying 或将 [DataMember] 属性添加到每个应该被反序列化的属性。
打开App,查看更多内容
随时随地看视频慕课网APP