我正在使用c#和json.net 9.0.1
我有以下json
{
"lineups": [
{
"55": {
"id": "55",
"game_id": "1",
"player_id": "55",
"jersey_number": "78"
},
"56": {
"id": "56",
"game_id": "1",
"player_id": "56",
"jersey_number": "77"
},
"57": {
"id": "57",
"game_id": "1",
"player_id": "57",
"jersey_number": "76"
}
}
]
}
所有数组项都是Player类型。我如何解析json以便每个项目" 55"," 56"," 57"存储在玩家列表中?列表?
源json无法修改,因为它来自第三方。
更新 将json修改为有效,
答案 0 :(得分:2)
如果你创建了两个这样的类:
public class Lineup
{
public List<Dictionary<string,Player>> lineups;
}
public class Player
{
public string id {get; set; }
public string game_id { get; set;}
public string player_id {get;set;}
public string jersey_number {get;set;}
}
然后你应该(在你修复了无效的JSON之后),能够像这样反序列化:
var l = Newtonsoft.Json.JsonConvert.DeserializeObject<Lineup>(source);
示例:https://dotnetfiddle.net/e7eUUZ
您还可以使用JSON.Net中的各种属性来自定义反序列化。例如,您可能希望使用JsonPropertyAttribute
将JSON源中的名称映射到与标准匹配的C#属性名称。