Jquery last.fm JSON data/如何截断这个长数组?
我对JSON有点不熟悉。我正在使用last.fm的JSON提要构建一个事件页面 feed工作正常,但问题是多个艺术家在同一个活动中相遇,比如音乐节。现在整个阵列都打印出来了,逗号后没有空格,如果列出了许多频带,我不知道如何缩短阵列。(例如,列出前十个波段。) 我的代码的相关部分是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
$.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(", ");
}