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

Jquery last.fm JSON data/如何截断这个长数组?,jquery,json,last.fm,Jquery,Json,Last.fm,我对JSON有点不熟悉。我正在使用last.fm的JSON提要构建一个事件页面 feed工作正常,但问题是多个艺术家在同一个活动中相遇,比如音乐节。现在整个阵列都打印出来了,逗号后没有空格,如果列出了许多频带,我不知道如何缩短阵列。(例如,列出前十个波段。) 我的代码的相关部分是 $.getJSON(last_fm_url, function(data) { $.each(data.events.event, function(i, item){ var eventTitle = i

我对JSON有点不熟悉。我正在使用last.fm的JSON提要构建一个事件页面

feed工作正常,但问题是多个艺术家在同一个活动中相遇,比如音乐节。现在整个阵列都打印出来了,逗号后没有空格,如果列出了许多频带,我不知道如何缩短阵列。(例如,列出前十个波段。)

我的代码的相关部分是

$.getJSON(last_fm_url, function(data) {
  $.each(data.events.event, function(i, item){
    var eventTitle = item.title;
    var eventArtist = item.artists.artist;
  });
});
eventTitle没有什么大不了的,因为只有一个,但我不确定如何使用EventArtister,如何将长长的列表分割成我可以处理的单个项目

我的样本在这里:。我的JSFIDLE在这里:


谢谢您的帮助。

如果您想要数组中的前10项,您应该使用slice

 eventArtist = item.artists.artist.slice(0, 9);
我更新了JSFIDLE:

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

例如:要在每个逗号后获得一个空格,您的最终代码应该如下所示

 eventArtist = item.artists.artist.slice(0, 9).join(", ");
您遇到的问题是,有时item.artists.artist不是数组,而是字符串。在这种情况下,切片和联接将无法正常工作

您的代码应该如下所示

更新了小提琴:


你能做一个自足的例子吗?或者发布你得到的JSON?我读过这个网站很多次,但以前从未发布过。什么是一个自包含的示例?@AnwarMontasir您可以制作一个示例,或者您可以在问题bodyOk中发布收到的json,JSFIDLE补充道。谢谢你的建议。谢谢@guymograbi,这很好地回答了我一半的问题。但是我如何在列表中的每个逗号后面加空格呢?好的,我不知道这是否是最优雅的解决方案,但我解决了它:。谢谢大家。为了回答您在评论中的问题-要控制数组toString表示形式上的分隔符,您应该使用“join”。要在后面获得带有空格的逗号,它将如下所示:item.artists.artist.slice(0,9)啊。知道item.artists.artist有时是数组,有时是字符串非常有帮助。我最终使用数组的instanceof来测试它。
 var eventArtist = item.artists.artist;
 if ( typeof(eventArtist["join"]) == "function"  ){
      eventArtist = eventArtist.slice(0,9).join(", ");
 }