Как просмотреть результаты last.fm с помощью getJSON

Я новичок в JS и пытаюсь получить свой last.fm toptracks за последние 7 дней с ограничением 3 из их API здесь:

http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json

Вот мой код ниже, который работает, но всякий раз, когда я меняю limit на более чем 1, он терпит неудачу без ошибки консоли. Любая идея, как я могу использовать .html для распечатки массива из этих трех имен треков?

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=1&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(result){
    $.each(result, function(){
        $('#lastfm_toptracks').html(result.toptracks.track.name);
    });
});

person Jeremy P. Beasley    schedule 20.07.2015    source источник


Ответы (3)


Во-первых, вам нужно изменить свой код, чтобы зациклить возвращаемый массив result.toptracks.track. Во-вторых, вам нужно изменить html() на append(), иначе вы перезаписываете текст элемента на каждой итерации и будете видеть только конечный трек. Попробуй это:

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(result){
    $.each(result.toptracks.track, function(i, track){
        $('#lastfm_toptracks').append('<p>' + track.name + '</p>');
    });
});

Пример скрипта

Также обратите внимание, что в документации указано, что значение по умолчанию для limit равно 50 на запрос.

person Rory McCrossan    schedule 20.07.2015

Под кодом:

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(result){        
    $.each(result.toptracks.track, function(key, val){        
        console.log(val.name);
        $('#lastfm_toptracks').append('<div>'+ val.name + '</div>');
    });
});

И скрипка:

http://jsfiddle.net/k6g6v0rc/1/

person Endre Simo    schedule 20.07.2015

Это просто синтаксическая ошибка

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.gettoptracks&user=thisisheroic&period=7day&limit=3&api_key=3cbc1a3aa903935d08223263bcc3ba0b&format=json", function(results){
console.log(results);
$.each(results.toptracks.track, function(index,value){
    //$('#lastfm_toptracks').html(result.toptracks.track.name);
    alert(value.name);
});

});

Должен работать.

Ссылка на рабочую демонстрацию.

http://jsfiddle.net/nnyf0n28/7/

Дополнительные сведения см. по этой ссылке: http://api.jquery.com/jquery.each/

person anandharshan    schedule 20.07.2015