last.fm JSON数据/如何截断这个长数组?

时间:2013-03-13 03:22:35

标签: jquery json last.fm

我对JSON有点新手。我正在使用last.fm的JSON提要构建事件页面。

饲料工作正常,但问题是多个艺术家遇到同一个活动,如音乐节。现在,整个数组在逗号后面没有空格打印出来,如果列出了很多波段,我无法弄清楚如何缩短数组。 (例如,列出前十个乐队。)

我的代码的相关部分是

$.getJSON(last_fm_url, function(data) {
  $.each(data.events.event, function(i, item){
    var eventTitle = item.title;
    var eventArtist = item.artists.artist;
  });
});

eventTitle没什么大不了的,因为只有一个,但我不知道如何处理eventArtist,如何将这个长列表分成我可以使用的单个项目。

我的示例在这里:http://bit.ly/ZI4Q5h。我的jsfiddle在这里:http://jsfiddle.net/SBvUm/2/

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您想要数组中的10个第一项,则应使用切片

 eventArtist = item.artists.artist.slice(0, 9);

我更新了jsfiddle:http://jsfiddle.net/SBvUm/3/

为了更好地控制“toString”数组表示,可以使用“join”。

例如:要在每个逗号后面加一个空格,最后的代码应该如下所示

 eventArtist = item.artists.artist.slice(0, 9).join(", ");

您遇到的问题是,有时item.artists.artist不是数组而是字符串。在这种情况下,切片和连接将无法正常工作。

您的代码应如下所示

更新了小提琴:http://jsfiddle.net/SBvUm/7/

 var eventArtist = item.artists.artist;
 if ( typeof(eventArtist["join"]) == "function"  ){
      eventArtist = eventArtist.slice(0,9).join(", ");
 }