1

我对 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/

感谢您的帮助。

4

1 回答 1

0

如果你想要一个数组中的 10 个第一个项目,你应该使用 slice

 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(", ");
 }
于 2013-03-13T19:06:36.700 回答