我尝试了很多小时来解析JsonArray,这是我通过graph.facebook获得的,以便可以获得额外的值。我要提取的值是消息和ID。
获得JasonArry没问题,可以正常工作:
[
{
"code":200,
"headers":[{"name":"Access-Control-Allow-Origin","value":"*"}],
"body":"{
\"id\":\"255572697884115_1\",
\"from\":{
\"name\":\"xyzk\",
\"id\":\"59788447049\"},
\"message\":\"This is the first message\",
\"created_time\":\"2011-11-04T21:32:50+0000\"}"},
{
"code":200,
"headers":[{"name":"Access-Control-Allow-Origin","value":"*"}],
"body":"{
\"id\":\"255572697884115_2\",
\"from\":{
\"name\":\"xyzk\",
\"id\":\"59788447049\"},
\"message\":\"This is the second message\",
\"created_time\":\"2012-01-03T21:05:59+0000\"}"}
]
现在,我尝试了几种访问消息的方法,但是每个方法都以catch ...结尾并引发异常。
例如:
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<dynamic>(json);
foreach (var item in result)
{
Console.WriteLine(item.body.message);
}
引发异常:System.Collections.Generic.Dictionary不包含正文的定义。尽管如此,您仍可以在下面的屏幕截图中看到该主体包含定义。
因为不允许发布图片,您可以在直接上传中找到它:http://s7.directupload.net/images/120907/zh5xyy2k.png
我没有更多的主意,所以请您帮助我。我需要这个用于私人而非商业项目。
也许您可以给我一个代码短语,以便我继续我的开发。
到目前为止谢谢你
多米尼克
最佳答案
如果使用Json.Net,您要做的就是
更换
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<dynamic>(json);
与
dynamic result = JsonConvert.DeserializeObject(json);
就这样。