1

私はJSONの初心者です。last.fmのJSONフィードを使用してイベントページを作成しています。

フィードは正常に機能していますが、問題は、音楽祭などの同じイベントで複数のアーティストが出くわした場合です。現在、配列全体がコンマの後にスペースなしで出力されており、多くのバンドがリストされている場合、配列を短縮する方法がわかりません。(たとえば、最初の10バンドをリストします。)

私のコードの関連部分は

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

eventTitleは1つしかないので大したことではありませんが、eventArtistをどうするか、その長いリストを操作できる個々のアイテムに分割する方法がわかりません。

私のサンプルはここにあります:http://bit.ly/ZI4Q5h。私のjsfiddleはここにあります:http://jsfiddle.net/SBvUm/2/

ご協力ありがとうございました。

4

1 に答える 1

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