У меня проблема с десериализацией JSON ответов от RIOT API в C#. Я хочу получить список LeagueEntryDTO. API возвращает поток, который выглядит следующим образом:
[
{
"leagueId": "c83a16ca-b80e-4456-9f57-bc0f2a6020ae",
"queueType": "RANKED_SOLO_5x5",
"tier": "DIAMOND",
"rank": "II",
"summonerId": "XrhB60yIVT_t6Uwp0XuWRpFYD49_Ypk9ycybSdt6LS9Lv5E",
"summonerName": "MasterPrzecin",
"leaguePoints": 7,
"wins": 68,
"losses": 62,
"veteran": false,
"inactive": false,
"freshBlood": false,
"hotStreak": false},
{
"leagueId": "6b3e4e2e-cc90-4e06-afb2-7c2f4b0be9ab",
"queueType": "RANKED_FLEX_SR",
"tier": "PLATINUM",
"rank": "III",
"summonerId": "XrhB60yIVT_t6Uwp0XuWRpFYD49_Ypk9ycybSdt6LS9Lv5E",
"summonerName": "MasterPrzecin",
"leaguePoints": 58,
"wins": 7,
"losses": 7,
"veteran": false,
"inactive": false,
"freshBlood": false,
"hotStreak": false
}
]
Это мой текущий код для преобразования данных, которые не работают:
public class LeagueEntryDTOService : ILeagueEntryDTOService
{
RestClient client = new RestClient("https://eun1.api.riotgames.com/lol/league/v4/entries/");
public LeagueEntryDTOResponse GetLeagueEntryDTO()
{
var request = new RestRequest("by-summoner/{encryptedSummonerId}")
.AddParameter("encryptedSummonerId", "XrhB60yIVT_t6Uwp0XuWRpFYD49_Ypk9ycybSdt6LS9Lv5E", ParameterType.UrlSegment)
.AddParameter("api_key", "key");
var response = client.Execute<LeagueEntryDTOResponse>(request);
if (!response.IsSuccessful)
{
return null;
}
return response.Data;
}
public class LeagueEntryDTOResponse
{
public ICollection<AllRanks> Ranks { get; set; }
}
public class AllRanks
{
public string Tier { get; set; }
public string Rank { get; set; }
public int LeaguePoints { get; set; }
public int Wins { get; set; }
public int Losses { get; set; }
}
}
}
Каков хороший способ десериализации этих данных?