Json.net无法加载属于类对象的某些属性?注意:我添加这个社区wiki条目是为了节省我刚刚花在调试这个问题上的时间。我有一个具有多个公共属性的类对象。我可以使用JSON.net对其进行序列化。但是当我加载JSON文本并使用JsonConvert.DeserializeObject对其进行反序列化时,如果某些字段在序列化时确实具有有效值,则会被设置为NULL。我手动检查了序列化的JSON字符串,我肯定在文本中看到了NULL属性值。为什么?默认情况下,Json.Net只序列化和反序列化类的公共成员。如果您有一个公共的getter但属性有一个私有的setter,该属性将序列化为JSON但不会反序列化回您的类。解决这个问题的简单方法是让你的setter公开,但这当然会破坏私有setter提供的不变性。如果您希望能够让您的setter保持私有,同时仍然能够反序列化它们,您可以使用[JsonProperty]属性注释属性。这将允许反序列化器“看到”它们。这里有一个快速的小提示:https://dotnetfiddle.net/4nZdGJ虽然我花了一段时间才弄明白,但答案很简单。反序列化时始终具有NULL值的对象属性具有私有设置器。我公开了安装程序,问题就消失了。以上就是C#学习教程:Json.net无法加载属于类对象的部分属性?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
