2011-01-14 29 views
2

は、私は、次のJSONJSONネストされた配列

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

を持っていると私は私の全体wallDataへの供給とwallPostsに 'データ' オブジェクトを格納

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) 
{ ... } 

を考えてみましょう。 それで、私はwallItem.Dictionary["from"].Dictionary["name"]にアクセスでき、 "aaa bbb"が得られます。 しかし、私はアクションの配列内に入ることができません。 wallItem.Dictionary ["actions"]辞書["name"]は動作しません。

「アクション」は配列であるため、あなたはwallItem.Dictionary["actions"][0].Dictionary["name"]ような何かをする必要があります任意のアイデア

答えて

1

。別のノートで

+0

私はこれをForeachに入れます 'ViewData [" hm "] = wallItem.Dictionary [" actions "] [0]。辞書[" name "]。文字列;' それは私に ' wallItem.Dictionary ["actions"] [0] '、エラー:「[]でのインデックス付けをFacebook.JSONobject型の式に適用できません。 任意のアイデア – Sebastjan

+0

Facebook.JSONobjectの仕組みがわかりません - おそらく' wallItem .Dictionary ["actions"]。配列[0]。辞書["name"] '? – Skilldrick

+0

おそらく(wallItem.Dictionary ["actions"])["name"]が役に立ちます。必要に応じてキャスト... – Mulki

0

...そのすっきりuの直接クラスにあれば...この

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

ようDataObjectが強く型付けされたクラスでウルJSONデータをエミュレートしたクラスとなります。 ur Jsonのサイズによっては、コード内にたくさんの文字列を使用する必要はありません。

関連する問題