我有从外部聚会收到的JSON字符串。
{
"team":[
{
"v1":"",
"attributes":{
"eighty_min_score":"",
"home_or_away":"home",
"score":"22",
"team_id":"500"
}
},
{
"v1":"",
"attributes":{
"eighty_min_score":"",
"home_or_away":"away",
"score":"30",
"team_id":"600"
}
}
]
}
我的映射课:
public class Attributes
{
public string eighty_min_score { get; set; }
public string home_or_away { get; set; }
public string score { get; set; }
public string team_id { get; set; }
}
public class Team
{
public string v1 { get; set; }
public Attributes attributes { get; set; }
}
public class RootObject
{
public List<Team> team { get; set; }
}
问题是我不喜欢Attributes
班级名称 和attributes
字段名称 在里面Team
班级。相反,我希望它被命名TeamScore
并去除_
从字段名称中提供专有名称。
JsonConvert.DeserializeObject<RootObject>(jsonText);
我可以重命名Attributes
到TeamScore
,但是如果我更改字段名称(attributes
在里面Team
班级),它不能正确地陈述,并给了我null
。我该如何克服这一点?
答案
JSON.NET -NEWTONSOFT有一个JsonPropertyAttribute
它允许您指定JSON属性的名称,因此您的代码应为:
public class TeamScore
{
[JsonProperty("eighty_min_score")]
public string EightyMinScore { get; set; }
[JsonProperty("home_or_away")]
public string HomeOrAway { get; set; }
[JsonProperty("score ")]
public string Score { get; set; }
[JsonProperty("team_id")]
public string TeamId { get; set; }
}
public class Team
{
public string v1 { get; set; }
[JsonProperty("attributes")]
public TeamScore TeamScores { get; set; }
}
public class RootObject
{
public List<Team> Team { get; set; }
}