2011-02-10 2 views
0

これはjQuery JSONの新機能です。私は、以下のjson出力のactions > nameノードにアクセスしようとしています。 "actions"は "data"配列の内部の配列のようです。私がjsonの結果を得ているところでは、私はfb.messageを使って "メッセージ"部分に正しくアクセスすることができ、fb.from.nameで "from"の下の "name"ノードにアクセスできます。だから、私はどのように "アクション"の下の "名前"ノードにアクセスする配列

ありがとうございました!

CODE:追加質問について

({ "data": [{ 
     "id": "1755670903_1287007912714", 
     "from": { 
      "name": "LifeBridge Church", 
      "id": "1755670903" 
     }, 
     "message": "Due to weather, church service tomorrow is canceled. See you next week!", 
     "icon": "http://photos-d.ak.fbcdn.net/photos-ak-snc1/v27562/23/2231777543/app_2_2231777543_9553.gif", 
     "actions": [ 
      { 
       "name": "\u0040lifebridgeTX on Twitter", 
       "link": "http://twitter.com/lifebridgeTX?utm_source=fb&utm_medium=fb&utm_campaign=lifebridgeTX&utm_content=33711605665505280" 
      } 
     ], 
     "type": "status", 
     "application": { 
      "name": "Twitter", 
      "id": "2231777543" 
     }, 
     "created_time": "2011-02-05T02:20:48+0000", 
     "updated_time": "2011-02-05T02:20:48+0000" 
     }, 
     { 
     "id": "1755670903_1281724020620", 
     "from": { 
      "name": "LifeBridge Church", 
      "id": "1755670903" 
     }, 
     "message": "Service tonight at 5:30... meet us at Eddins Elementary school in McKinney. http://see.sc/8l4Cwo || Praying that God is greatly glorified!", 
     "icon": "http://photos-d.ak.fbcdn.net/photos-ak-snc1/v27562/23/2231777543/app_2_2231777543_9553.gif", 
     "actions": [ 
      { 
       "name": "\u0040lifebridgeTX on Twitter", 
       "link": "http://twitter.com/lifebridgeTX?utm_source=fb&utm_medium=fb&utm_campaign=lifebridgeTX&utm_content=31388610301272065" 
      } 
     ], 
     "type": "status", 
     "application": { 
      "name": "Twitter", 
      "id": "2231777543" 
     }, 
     "created_time": "2011-01-29T16:30:03+0000", 
     "updated_time": "2011-01-29T16:30:03+0000" 
     }] 
}); 

フォローアップコード:

$.each(json.data,function(i,fb){ 
    if (!fb.message) continue; 
    facebookPost += '<li class="ui-li ui-li-static ui-btn-up-c" role="option" data-theme="c">' + fb.message + ' <br /><span class="via">' + fb.created_at + ' via ' + fb.actions[0].name + '</span></li>'; 
    $('#facebookPosts li:first').after(facebookPost); 
}); 

答えて

1

あなたがfbを言うとき、私は、そのfb = data[0]を想定しています。その後:コメント欄で質問、値が存在しない時にアイテムをスキップするから

fb.actions; // Gives actions ARRAY 
fb.actions[0]; // Gives first OBJECT in actions ARRAY 
fb.actions[0].name; // Gives the name VALUE of the first OBJECT in actions ARRAY 

$.each(json.data,function(i,fb){ 
    if (!fb.message) return true; // true to keep going, false to quit immediately 
    facebookPost += '<li class="ui-li ui-li-static ui-btn-up-c" role="option" data-theme="c">' + fb.message + ' <br /><span class="via">' + fb.created_at + ' via ' + fb.actions[0].name + '</span></li>'; 
    $('#facebookPosts li:first').after(facebookPost); 
}); 
+0

おかげさまで私は必要なものでした!また、あなたが知っている場合...私はデータ配列内のすべてのオブジェクトをループしています。もしそれが未定義を返すなら、私はループから1つを取り除くことができますか?それとも簡単な方法がありますか?コード例が必要な場合はお知らせください。 – RyanPitts

+0

@Ryan、 'undefined'を返すのはいつですか?そして、削除すると、その上をスキップする(ループの次の項目にジャンプする)のですか? –

+0

申し訳ありませんが、少し曖昧でした。はい、いくつかのオブジェクトは "メッセージ"を持たず、私のループは次のようなリスト項目を作成します:(これは私の$ .eachの中のコードです) 'fbPost + = '

  • '+ fb.actions [0] .nameを介して-static ui-btn-up-c "role =" option "データテーマ=" c " + '
  • '; ' "メッセージ"がない場合は、ループをスキップします。 – RyanPitts

    1

    JSONオブジェクトがi番目を取得するには、彼らにあなたは通常と同じようにアクセスし、普通のjavascriptのオブジェクトでありますデータ項目のjアクションには、次のコードを使用できます。それぞれの最初を取得するには、i=j=0をハードコードするだけです。

    jsonResponse.data[i].actions[j].name 
    
    +0

    ありがとうございました...あなたと他の回答が私の問題を解決するのに役立ちました!私は彼と一緒に行くことを選択しますが、私はまだあなたにポイントを与えるでしょう。 – RyanPitts

    0

    あなたは、配列の最初の要素にアクセスすることができます。

    fb.actions[0].name