C# 为什么序列化对象列表后所有值都为空?

C# 为什么序列化对象列表后所有值都为空?,c#,json,json.net,C#,Json,Json.net,我尝试序列化包含对象列表的类,但方法JsonConvert.SerializeObject()返回JSON字符串,其中列表中的所有值都为null,而不是使用适当的值创建字符串 应从对象创建字符串的行如下所示: string json = JsonConvert.SerializeObject(msg); {\"Players\":[{\"UserName\":null,\"Password\":null,\"CurrencyCode\":null,\"CountryCode\":null,\"

我尝试序列化包含对象列表的类,但方法
JsonConvert.SerializeObject()
返回JSON字符串,其中列表中的所有值都为null,而不是使用适当的值创建字符串

应从对象创建字符串的行如下所示:

string json = JsonConvert.SerializeObject(msg);
{\"Players\":[{\"UserName\":null,\"Password\":null,\"CurrencyCode\":null,\"CountryCode\":null,\"FName\":null,\"LName\":null}],\"Action\":18,\"CommID\":null,\"PlayerID\":\"27de1\"}
在哪里上课

public class JSONPlayerListResponse
{
    public List<Player> Players {get; set;}

    public MessageType Action
    {
        get { return MessageType.GetPlayerListResponse; }
    }

    public string CommID { get; set; }

    public string PlayerID { get; set; }
}

有人知道为什么返回字符串中的所有值都为空,以及如何修改逻辑以生成包含实际值的字符串吗?

似乎您没有用实际值初始化
播放器<代码>玩家。添加(新玩家())
是不够的

试试这个

var result = JsonConvert.SerializeObject(
        new JSONPlayerListResponse() { 
            Players = new List<Player>() { new Player(){UserName="test name"} } 
        }
    );
var result=JsonConvert.SerializeObject(
新的JSONPlayerListResponse(){
Players=new List(){new Player(){UserName=“test name”}
}
);

您将看到用户名不是空的。

似乎您没有用实际值初始化玩家<代码>玩家。添加(新玩家())是不够的

试试这个

var result = JsonConvert.SerializeObject(
        new JSONPlayerListResponse() { 
            Players = new List<Player>() { new Player(){UserName="test name"} } 
        }
    );
var result=JsonConvert.SerializeObject(
新的JSONPlayerListResponse(){
Players=new List(){new Player(){UserName=“test name”}
}
);
您将看到用户名不是空的