我取同一對象的集合的集合從web API。 然後,我會想的JSON反序列化到一個列表C#反序列化JSON的多個集合到一個列表<T>
的JSON如下:
{
"Liverpool": [
{
"playerId": "LIV01",
"name": "Adam Llana",
"position": "Midfielder"
},
{
"playerId": "LIV02",
"name": "Daniel Sturridge",
"position": "Forward"
}
],
"ManchesterUnited": [
{
"playerId": "MNU01",
"name": "Daley Blind",
"position": "Defender"
},
{
"playerId": "MNU02",
"name": "Romelu Lukaku",
"position": "Forward"
}
],
"Arsenal": [
{
"playerId": "ARS01",
"name": "Petr Cech",
"position": "Goalkeeper"
},
{
"playerId": "ARS02",
"name": "Santi Cazorla",
"position": "Midfielder"
}
]
}
我可以想做什麼就能做的是我不感興趣的集合在以下名稱:
public class Player
{
public string playerId { get; set; }
public string name { get; set; }
public string position { get; set; }
}
List<Player> cards = JsonConvert.DeserializeObject<List<Player>>(jsonContent);
這不起作用併產生錯誤。
無法反序列化當前JSON對象(例如{\ 「名稱\」:\ 「值\」}) 成型 'System.Collections.Generic.List`1 [播放器]',因爲型 需要一個JSON數組(例如[1,2,3])來正確反序列化。要解決此 錯誤或者改變JSON到JSON陣列(例如[1,2,3])或 變化反序列化類型,以便它是一個正常的.NET類型(例如 不是原始類型像整數,而不是一個集合類型,如數組 或List),可以從JSON對象反序列化。 也可以將JsonObjectAttribute添加到該類型中,以強制它從一個JSON對象反序列化爲 。
有沒有什麼辦法可以用Newtonsoft.Json來完成這個?
如果OP有1000個團隊進行反序列化,該怎麼辦?如果他們的名字事先不知道怎麼辦?如果未來將一個新的屬性添加到'Player'中呢? – easuter
雅這是這個實現問題。感謝突出問題。 –