You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Newtonsoft.Json反序列化C#实体类失败问题求助

搞定Newtonsoft.Json反序列化Account类失败的问题

兄弟,我一眼就瞅出问题在哪了!你写的属性setter逻辑完全搞反方向了😆

比如看你Email属性的set方法:set => value = _Email——这是把私有字段_Email的值赋给了传入的参数value,而不是把JSON解析出来的value存到_Email里!Newtonsoft.Json反序列化的时候,是靠调用属性的setter来把JSON里的值赋值给类实例的,你这么写等于根本没把数据存进去,反序列化自然就失败了。

修正后的Account类代码:

public class Account 
{ 
    private string _Email = string.Empty; 
    private bool _Active = false; 
    private DateTime _CreatedDate = new DateTime(); 
    private IList<string> _Roles = new List<string>(); 

    // 这里把setter的赋值方向改过来就对了
    public string Email { get => _Email; set => _Email = value; } 
    public bool Active { get => _Active; set => _Active = value; } 
    public DateTime CreatedDate { get => _CreatedDate; set => _CreatedDate = value; } 
    public IList<string> Roles { get => _Roles; set => _Roles = value; } 
}

额外小建议:

如果你不需要在属性的get/set里加额外逻辑,完全可以用C#的自动属性来简化代码,不仅写起来快,还不容易犯这种赋值方向的错误,Newtonsoft.Json对自动属性的支持也完美:

public class Account 
{ 
    public string Email { get; set; } = string.Empty; 
    public bool Active { get; set; } = false; 
    public DateTime CreatedDate { get; set; } = new DateTime(); 
    public IList<string> Roles { get; set; } = new List<string>(); 
}

内容的提问来源于stack exchange,提问作者sankara pandian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:01:26