Как десериализовать массив JSON без ключа? C#

Я работаю над оберткой API для API бунта. Я столкнулся с проблемой со следующей конечной точкой:

Чемпион-мастерство /v4/ чемпион-Masteries/ по-призыватель /{encryptedSummonerId}

Я использую Newtonsoft JSON и RestSharp, чтобы получить результаты. Вот мой код

public Masteries getMasteriesBySummoner(string id, string server)
{
    RestClient client = new RestClient($"https://{getServer(server)}.api.riotgames.com/lol/");
    RestRequest request = new RestRequest($"champion-mastery/v4/champion-masteries/by-summoner/{id}");
    request.AddHeader("X-Riot-Token", key);

    var response = client.Get(request);
    Masteries masteries = JsonConvert.DeserializeObject<Masteries>(response.Content);
    return masteries;
}

Этот шаблон работал для около 80% конечных точек. Однако для этой конкретной конечной точки возвращается массив JSON. Этот конкретный массив json также не имеет таких ключей, как "данные" или "записи", как все остальные. Так что я не могу понять, как правильно сделать модель мастерства. Вот что у меня так далеко

public class Masteries
{
    public int championLevel { get; set; }
    public bool chestGranted { get; set; }
    public int championPoints { get; set; }
    public int championPointsSinceLastLevel { get; set; }
    public int championPointsUntilNextLevel { get; set; }
    public string summonerId { get; set; }
    public int tokensEarned { get; set; }
    public int championId { get; set; }
    public object lastPlayTime { get; set; }
}

который работает для одной записи, но не для всего массива. Добавление списка, похоже, не работает, поскольку нет ключа, на котором можно основывать список.

Вот образец JSON Pattern...

[
    {
        "championLevel": 7,
        "chestGranted": false,
        "championPoints": 70594,
        "championPointsSinceLastLevel": 48994,
        "championPointsUntilNextLevel": 0,
        "summonerId": "xaZh_7U2VIRtArKG-mgda_Rt9TSRVRmhBp2GFE88bmTSqJU",
        "tokensEarned": 0,
        "championId": 10,
        "lastPlayTime": 1537676432000
    },
    {
        "championLevel": 7,
        "chestGranted": true,
        "championPoints": 51273,
        "championPointsSinceLastLevel": 29673,
        "championPointsUntilNextLevel": 0,
        "summonerId": "xaZh_7U2VIRtArKG-mgda_Rt9TSRVRmhBp2GFE88bmTSqJU",
        "tokensEarned": 0,
        "championId": 69,
        "lastPlayTime": 1548208513000
    }
]

Любая помощь приветствуется, спасибо.

0 ответов

Другие вопросы по тегам