为了账号安全,请及时绑定邮箱和手机立即绑定

JsonConvert.DeserializeObject 将属性保留为 null

JsonConvert.DeserializeObject 将属性保留为 null

C#
紫衣仙女 2022-11-21 16:00:41
如果反序列化对象的所有字段都保持为 null,无一例外,请检查您的基类是否具有 [DataContract] 属性,这会使 Json.net 忽略没有 [DataMember] 的每个属性。很抱歉代码量很大,但我无法缩小导致问题的原因。我有这个带有 AssetViewMo属性是相同的,除了在此类中它们具有用于 WPF 绑定的带有 NotifyOfPropertyChange() 的支持字段。我将其中一些更改为具体类型,因为我认为这可能会引起一些麻烦,但没有帮助。如果使用 AssetViewModel2 反序列化,结果的所有属性都将保持为 null,并且我没有得到任何异常。我在 AssetViewModel2 中做错了什么?
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

问题出在基类中。我正在使用 Caliburn micros PropertyChangedBase。该类有一个 [DataContract] 属性,这使得有必要将 [DataMember] 属性添加到应该被反序列化的属性中。

解决方案:

  • 复制没有 [DataContract] 属性的类并将 [JsonIgnore] 添加到 IsNotifying 或

  • 将 [DataMember] 属性添加到每个应该被反序列化的属性。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 320 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信