【发布时间】:2015-08-20 17:01:00
【问题描述】:
我试图从通过 api 获得的 json 对象解析信息,但在这个请求中,我试图只获取一个变量。我只想获取summonerLevel 变量。
{
"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结构意味着你需要将其反序列化为
Dictionary<string, dynamic>,然后你就可以轻松访问第一个key了。 -
根对象中是否只有一个属性?