【问题标题】:C# Get JSON value [duplicate]C#获取JSON值[重复]
【发布时间】:2015-09-08 19:51:05
【问题描述】:

我正在尝试解析一些 JSON,但遇到了问题。我正在尝试获取项目的名称。 JSON:http://steamcommunity.com/id/xejuicy/inventory/json/730/2/

我试过的代码:

WebClient wc = new WebClient();
string theItems = wc.DownloadString(string.Format("http://steamcommunity.com/profiles/{0}/inventory/json/730/2/", steamUser.SteamID.ConvertToUInt64()));
dynamic dynObj = JsonConvert.DeserializeObject(theItems);
Console.WriteLine("{0}", dynObj.rgDescriptions,dynObj);
foreach (var name in dynObj)
{
    foreach (var subname in name)
    {
        Console.WriteLine("{0}", subname.name);
    }
}

如果您熟悉 CS:GO,我想从 Steam 中获取所有 CS:GO 物品(甚至是板条箱),以及我在库存中的该游戏中的所有物品并获得它的名字。

错误:JValue 不包含名称的定义。 出现位置:第二个 foreach (Console.WriteLine("{0}", subname.name);)

这不是重复的,因为我成功反序列化 JSON 并且可以获取值但无法获取子值...虽然问题已经回答了。

【问题讨论】:

  • 需要添加更多信息。比如,错误是什么?什么时候发生?
  • 第一个Console.WriteLine调用在格式字符串中只有一个参数,但是得到了2个参数...
  • 这不是问题。不过谢谢。

标签: c# json parsing steam


【解决方案1】:
dynamic dynObj = JsonConvert.DeserializeObject(theItems);
foreach (var desc in dynObj.rgDescriptions)
{
    Console.WriteLine("{0} => {1}", desc.Name, desc.Value.name);
}

【讨论】:

  • 问题是,我不知道 .Value,看看 JSON ......它的项目数......像“527635071_0”
  • @XeJuicY 试一试..它的工作原理.....
  • 天哪,你是我的救星@Eser
猜你喜欢
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-27
  • 2019-03-03
  • 2016-12-29
相关资源
最近更新 更多