2010-02-03 58 views
4

我想从WebServer获得一些响应。在.NET运行时解析JSON

返回的数据是这样的:

[[3014887,"string1 string","http://num60.webservice.com/u3014887/b_c9c0625b.jpg",0], 
[3061529,"string2 string","http://num879.webservice.com/u3061529/b_320d6d36.jpg",0], 
[7317649,"string3 string","http://num1233.webservice.com/u7317649/b_a60b3dc2.jpg",0], 
[12851194,"string4 string","http://num843.webservice.com/u12851194/b_4e273fa4.jpg",0], 
[15819606,"string5 string","http://num9782.webservice.com/u15819606/b_66333a8f.jpg",0], 
[15947248,"string6 string","http://num1500.webservice.com/u15947248/b_920c8b64.jpg",0]] 

,我认为是在JSON格式,但在我的.Net WinForm应用程序我无法分析它。 你能提供一些建议或检查如何做到这一点。

我GOOGLE了约JSON.NET库,DataContractJsonSerializer类,但我不明白如何与响应的数据类型粘合起来这一切......

回答

14

如果你想解析JSON,那么JSON.net库是是的地方。

您可以使用它像这样:

var json = @"[[3014887,""string1 string"",""http://num60.webservice.com/u3014887/b_c9c0625b.jpg"",0], 
         [3061529,""string2 string"",""http://num879.webservice.com/u3061529/b_320d6d36.jpg"",0], 
         [7317649,""string3 string"",""http://num1233.webservice.com/u7317649/b_a60b3dc2.jpg"",0], 
         [12851194,""string4 string"",""http://num843.webservice.com/u12851194/b_4e273fa4.jpg"",0], 
         [15819606,""string5 string"",""http://num9782.webservice.com/u15819606/b_66333a8f.jpg"",0], 
         [15947248,""string6 string"",""http://num1500.webservice.com/u15947248/b_920c8b64.jpg"",0]]"; 
var array = JArray.Parse(json); 

foreach (var token in array) 
{ 
    Console.WriteLine(token[0]); 
} 

这样我能读懂你的数组的内容。

+0

我有一个方括号。还有一个值的数组,而不是我的例子中的KeyValue对。在我的示例中使用JSON.NET是个问题,是吗? – 2010-02-04 09:32:27

+2

string json = GetJson(); JArray a = JArray.Parse(json); – 2010-02-08 08:10:18

+0

接下来的步骤是什么? – 2010-02-09 14:39:02