2015-09-08 40 views
0

我想解析一些JSON,但我遇到了问题。我试图获取该物品的名称。 JSON:http://steamcommunity.com/id/xejuicy/inventory/json/730/2/C#获取JSON值

代码我想:

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,我想所有的CS:那场比赛我有GO蒸汽的项目(甚至板条箱),一切在库存中并得到它的名字。

错误:JValue不包含名称的定义。它不会重复,因为我成功地反序列化JSON,可以取值,但不能得到subvalue ...问题虽然已经回答。

+0

需要添加一堆更多信息。比如,什么是错误?什么时候发生? – CargoMeister

+0

首先'Console.WriteLine'调用格式字符串中只有一个参数,但获取2个参数... – Nyerguds

+0

这不是问题。但是,谢谢。 – XeJuicY

回答

1
dynamic dynObj = JsonConvert.DeserializeObject(theItems); 
foreach (var desc in dynObj.rgDescriptions) 
{ 
    Console.WriteLine("{0} => {1}", desc.Name, desc.Value.name); 
} 
+0

问题是,我不知道.Value,在JSON上看...这是数字的项目...像“527635071_0” – XeJuicY

+0

@XeJuicY只是试试它......它的工作..... – Eser

+0

哦,我的,你是我的救星@Eser – XeJuicY