为什么在使用 newtonsoft.Json 时需要设置对象中的 属性 而不是私有设置

Why does a property in an object need to be set and not private set when using newtonsoft.Json

我最近做了一个注册并遇到了一个问题,除非我的个人对象中的属性被设置而不是私有设置,否则下面这一行将无法工作

AllPeopleAdded.AddRange(JsonConvert.DeserializeObject<List<Person>>(File.ReadAllText(jsonfilePath)));

当我说不起作用时,我的意思是我的列表中的 JsonConvert.DeserializeObject returns 空值。

这个人 class 有 2 个属性

        public string mFirstName {get;set; }
        public string mLastName {get;set; }

有什么原因吗?

您仍然可以将 属性 设为私有,但您需要添加属性。这将正常工作

public class Person
{
    [JsonProperty]
    public string mFirstName { get; private set; }
    [JsonProperty]
    public string mLastName { get; private set; }
}

即使这样也能用,但用处不大

public class Person
{
    [JsonProperty]
    private string mFirstName;
    [JsonProperty]
    private string mLastName;

}