2011-01-14 314 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的大小,你不必在你的代碼中使用很多字符串。