当我从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 :(得分:1)
从您显示的输出mediaGroups
是一个对象数组,它们本身包含一个contents
属性,这是另一个对象数组,因此您需要使用嵌套循环来拉出每个{来自这些对象的{1}}属性。
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...
});
});
});
答案 1 :(得分:0)
您只需通过索引访问数组元素,按属性名称访问属性:
e.mediaGroups[0].contents[0].type
答案 2 :(得分:0)
如果数组只有一个元素,那么它就像这样简单:
media = e.mediaGroups[0];
contents = media.contents[0];
然后你可以这样做:
someVar1 = contents.type;
someVar2 = contents.url;
否则你必须遍历mediaGroups
和contents
以及