【问题标题】:Parsing a generic variable from a Json text从 Json 文本中解析通用变量
【发布时间】: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&lt;string, dynamic&gt;,然后你就可以轻松访问第一个key了。
  • 根对象中是否只有一个属性?

标签: c# json parsing dynamic


【解决方案1】:

这样的?

int  summonerLevel= (int)JObject.Parse(data).First.First["summonerLevel"];

【讨论】:

  • 谢谢你,你的天才。我很难理解这个 json 解析。可能需要阅读。
猜你喜欢
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 2020-10-09
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多