我试图解析一个使用LastFM API的JSON提要,但是在JSON数组中返回的某些元素的前缀是#,我不知道如何引用。如何使用jQuery解析来自LastFM的这个特定的JSON数据?
Feed URL为here,可以看到visualised here。
我的jQuery代码到目前为止是这样的:
$.getJSON('http://ws.audioscrobbler.com/2.0/?method=geo.getevents&api_key=ca1599876cde298491941da8577de666&format=json&callback=?', function(data) {
$.each(data.events.event, function(i, item) {
html += "<li><a class='fm-event' href='" + item.url + "'><h4>" + item.title + "</h4>";
html += "<p>at " + item.venue.name + ", " + item.venue.location.city + "<br />";
html += "on " + item.startDate + "</p>";
html += "<img src='" + item.venue.image.text + "' />"; // This doesn't work. how do I do this?
html += "</a></li>";
});
$("#last-fm-events").append(html);
});
基本上,我的每个项目,在饲料中循环以及动态建立一个列表,然后将其添加到DOM。
我无法弄清楚如何获取Feed中图像项的URL。对于不同的尺寸有不同的。对于图像元素的JSON看起来是这样的:
"image": [
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/34\/2243904.gif",
"size": "small"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/64\/2243904.gif",
"size": "medium"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/126\/2243904.gif",
"size": "large"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/252\/2243904.gif",
"size": "extralarge"
},
{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/_\/2243904\/A38.gif",
"size": "mega"
}
]
}
但我不明白为什么数组中的文本元素与#和如何获得URL特定尺寸的图像前缀。任何帮助赞赏,因为我是一个jQuery初学者!谢谢。
谢谢,这是一个很好的答案,它可以帮助我更好地理解JSON。我也很高兴你也发现它返回数据的方式有些奇怪 - 我不确定我是否错过了一些明显的东西!无论如何,你的解决方案完美无缺,我非常感激。 – 2010-06-30 08:29:36
@Dan Diplo:非常好,很高兴帮助。是的,更常见的JSON和JavaScript方式是:'{“image”:{“small”:“http:\/\/userserve-ak.last.fm \/serve \/34 \ /2243904.gif”, “medium”:“http:\/\/userserve-ak.last.fm \/serve \/64 \ /2243904.gif”,...}}'但他们可能是从一个不同的源格式(XML,从它的外观来看)。 – 2010-06-30 09:08:34
谢谢你,很好的答案。 – Zach 2012-08-01 02:36:33