2016-05-19 22 views
2

rssデータからループするとき、オブジェクトからurl値を抽出します。ここで配列内のオブジェクトから値にアクセスする方法

$.ajax({ 
url  : 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=30&callback=?&q=' + encodeURIComponent('http://www.dnoticias.pt/rss/actualidade/geral'), 
dataType : 'json', 
success : function (data) { 
    if (data.responseData.feed && data.responseData.feed.entries) { 
    $.each(data.responseData.feed.entries, function (i, e) { 

    title = e.title; 
    description = e.description; 
    category = e.categories[0]; 
    media = e.mediaGroups; 
    console.log(media); 
    } 
    } 
}); 

は、コンソールログから出力さ:プロパティ名で

mediaGroups: Array[1] 
0: Object 
    contents: Array[1] 
    0: Object 
    type: "image/jpeg" 
    url: "http://...." 

おかげ

+0

あなたがにconsole.logを取得しようとすることができcontentsを反復処理する必要があります

そう
someVar1 = contents.type; someVar2 = contents.url; 

(media.mediaGroups.contents.url ); –

+0

console.log(media.mediaGroups [0] .contents [0] .url)を取得できますか。 – Avinash

+0

言う:TypeError:メディアは定義されていません – nunof

答えて

1

から表示されている出力mediaGroupsはオブジェクトの配列です。オブジェクト自体には0が含まれていますプロパティはオブジェクトの別の配列です。したがって、ネストされたループを使用して、各オブジェクトをそれらのオブジェクトからそれぞれのurlプロパティを引き出す必要があります。

$.each(data.responseData.feed.entries, function(_, entry) { 
    $.each(entry.mediaGroups, function(_, mediaGroup) { 
     $.each(mediaGroup.contents, function(_, content) { 
      var url = content.url; 
      // use url as required here... 
     }); 
    }); 
}); 

あなたはいつもしか配列から最初の項目を取得したい、とそれぞれの子の配列は、少なくとも一つの項目が含まれていることを保証することができるなら、あなたは、単にこのようにインデックスしてアクセスすることができます

$.each(data.responseData.feed.entries, function (i, entry) { 
    var url = entry.mediaGroups[0].contents[0].url; 
    // use url as required here... 
}); 

Working example

+0

コード内に複数の括弧や括弧が一致している可能性があります。私はあなたの答えに実例を加えました。 –

+0

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

+0

問題ないです。喜んで助けてください。 –

0

あなただけのアクセス配列のインデックスによって要素、およびプロパティ:

e.mediaGroups[0].contents[0].type 
0

配列が一つだけの要素を持っている場合、それは、このような単純なのです:

media = e.mediaGroups[0]; 
contents = media.contents[0]; 

は、あなたは、このようsomehtingを行うことができます。あなたはmediaGroupsを通じて、同様

+0

は、エラーが "あなたのコードにいくつかの不一致の括弧と中かっこ"によって引き起こされたように思われますが、Roryが言及したように、それでもあなたが必要とする助けを得てうれしいです。 – zedling

関連する問題