Я пытаюсь разобрать информацию из объекта json, полученного через api, но в этом запросе я пытаюсь получить только одну переменную. Я просто хочу получить переменную summonerLevel
.Разбор общей переменной из текста Json
{
"unashamedohio": {
"id":107537,
"name":"UnashamedOhio",
"profileIconId":785,
"summonerLevel":30,
"revisionDate":1440089189000
}
}
Я пытался к нему с этим кодом, и я знаю, что если я пишу
p.summonerLevel = (int)(obj.unashamedohio.summonerLevel)
он будет работать, но проблема заключается в том, что unashamedohio
не статическое имя, и он будет меняйте в каждом запросе, который я делаю. Какой хороший пример, как это сделать? СООБЩЕНИЕ
WebClient c = new WebClient();
string data = c.DownloadString("https://las.api.pvp.net/api/lol/las/v1.4/summoner/by-name/"+summonerName+"?api_key=<api-key>");
dynamic obj = JsonConvert.DeserializeObject(data);
p.summonerLevel = (int)(obj.tempName.summonerLevel);
Я также пробовал это. : p.summonerLevel = (int) obj [p.summonerName] ["summonerLevel"]; –
Структура JSON подразумевает, что вам нужно десериализовать ее как «Словарь <строка, динамический>», тогда вы можете легко получить доступ к первому ключу. – haim770
check http://stackoverflow.com/questions/141088/what-is-the-best-way-to-iterate-over-a-dictionary-in-c – user1102901