2011-01-14 263 views
2

可以说我有以下的JSONJSON嵌套数组

{ 
    "data": [ 
     { 
     "from": { 
      "name": "aaa bbb", 
     }, 
     "actions": [ 
      { 
       "name": "Comment", 
       "link": "http://... 
      }, 
      { 
       "name": "Like", 
       "link": "http://.." 
      } 
     ], 
     }, 

,我有

JSONObject wallData = helper.Get("/me/feed"); 
if (wallData != null) 
{ 
    var data = wallData.Dictionary["data"]; 
    List<JSONObject> wallPosts = data.Array.ToList<JSONObject>(); 
} 
foreach (Facebook.JSONObject wallItem in wallPosts) 
{ ... } 

存储我全进到wallData和 '数据' 对象到wallPosts。 然后我可以访问wallItem.Dictionary["from"].Dictionary["name"],我得到“aaa bbb”。 但我无法进入动作数组 wallItem.Dictionary [“actions”]。Dictionary [“name”]不起作用。

任何想法

回答

1

你需要做的是这样wallItem.Dictionary["actions"][0].Dictionary["name"],因为“行动”是一个数组。

+0

好吧...所以我把它放到了一个Foreach `ViewData [“hm”] = wallItem.Dictionary [“action”] [0] .Dictionary [“name”]。String;` 它强调了我` wallItem.Dictionary [“actions”] [0]`,错误提示“无法将索引用[]应用于Facebook.JSONobject类型的表达式” 任何想法 – Sebastjan 2011-01-14 10:14:57

0

在不同的音符......它的整洁如果u直接进入一类......类似这样的

var jSerializer = new JavaScriptSerializer(); 
var jsonObject = jSerializer.Deserialize<DataObject>(json); 

的数据对象将是其模仿的强类型类乌尔JSON数据的类。根据你的Json的大小,你不必在你的代码中使用很多字符串。