使用jquery获取json对象而不使用$ .each

时间:2011-08-17 21:35:19

标签: javascript jquery json api last.fm

我想检索第一首曲目的状态

"@attr":{"nowplaying":"true"}

我有此代码来检索有关每个曲目的信息

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks&user=melroymusic&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=3&format=json&callback=?",

function(data){
    $.each(data.recenttracks.track, function(i,item){
    $("#lastfmMenu").append("<div class='lastfmItem'><div class='lastfmText'>"+item.artist['#text']+"</div>" + "<div class='lastfmDate'>"+item.name+"</div></div>");
    });
});

检索第一首曲目的现在播放状态,逻辑上我会做

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks&user=melroymusic&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=3&format=json&callback=?",

function(data){
    if (data.recenttracks.track[0]['@attr'].nowplaying == true){
        $("#lastfmMenu").append("Now Playing");
    }
    else {
        $("#lastfmMenu").append("Just played");
    }
});

没有给我任何结果。

希望你能帮助我。

2 个答案:

答案 0 :(得分:2)

是因为nowplaying是一个字符串而不是bool,所以它应该是

.nowplaying == "true"?

不在电脑上,所以我无法查看。

答案 1 :(得分:0)

你尝试先解析它吗?试试这个(未经测试),

function(data){
  **var parsedData = $.parseJSON(data)**
    if (parsedData.recenttracks.track[0]['@attr'].nowplaying == true){
      $("#lastfmMenu").append("Now Playing");
    }
    else {
      $("#lastfmMenu").append("Just played");
    }
});