Я использую API Riot здесь: https://developer.riotgames.com/api/methods#!/909/3144Получить первый элемент результатов JsonConvert?
Этот запрос позволяет вам указать список имен пользователей и запятую.
Я выполнение моего кода следующим образом:
string getUrl = "https://" + this.regionID + ".api.pvp.net/api/lol/" + this.regionID +
"/v1.4/summoner/by-name/" + summoner.Text + "?api_key=" + this.apiKey;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(getUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
dynamic json = JsonConvert.DeserializeObject<dynamic>(reader.ReadToEnd());
}
Это возвращает результаты следующим образом:
{
"prorate": {
"id": 20335410,
"name": "ProRate",
"profileIconId": 693,
"revisionDate": 1420864656000,
"summonerLevel": 30
},
"jaxelrod": {
"id": 31034983,
"name": "Jaxelrod",
"profileIconId": 744,
"revisionDate": 1420999923000,
"summonerLevel": 30
}
}
Теперь, позволяет сказать, что я хочу, чтобы получить идентификатор первого пользователя возвращаемого в список. Я знаю, что могу сделать это, используя следующий код:
json.prorate.id.ToString();
Однако, я не буду обязательно знать индекс первого элемента в списке. В этом конкретном случае его prorate
, но он может быть чем-то другим при каждом вызове. Есть ли вызов, который я мог бы сделать, чтобы просто получить первый элемент массива? Что-то вроде json.First().id.ToString()
?
Но что если Бунт изменяет API? Разве это не сломает вещи? –
Плюс, это кажется бессмысленным, чтобы создать класс для всего этого, когда мне нужно всего лишь один фрагмент данных ... затем я выбрасываю и никогда не использую его все снова. –
Кроме того, получение ошибки 'Лучшее перегруженное соответствие метода для 'Newtonsoft.Json.Linq.JObject.Parse (string)' имеет некоторые недопустимые аргументы.' –