需要帮助获取JSON数据的最后一项

Jod*_*ner 1 jquery jsonp

我正在尝试访问此JSON提要以获取Feed中的最后一项,这是当前在广播电台上播放的歌曲,因此我可以将其推送到流媒体播放器网络应用:

function getSongData(){
    $.ajax({
        url: 'http://cjzn.streamon.fm/metadata/recentevents/CJZN-48k.json',
        dataType: 'jsonp',
        success: function(data) {
            var totalItems = data.length;
            alert('Current song: ' + data[totalItems].TIT2);
        },
        error: function() {
                alert('Unable to retrieve data');
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在使用data.length检索项目总数,这意味着该数字也是Feed中的最后一项.我能得到的只是错误信息!我知道我需要使用JSONP将数据传输到我的域,但老实说我不知道​​JSONP是否受支持这可能是罪魁祸首.如果是这样,我怎样才能获得Feed数据?

PSL*_*PSL 5

你应该.

更改

data[totalItems].TIT2
Run Code Online (Sandbox Code Playgroud)

data[totalItems-1].TIT2
Run Code Online (Sandbox Code Playgroud)

数组索引从0开始.因此您需要为最后一项执行length-1.data[totalItems]将超出界限,当您undefined.TIT2有效访问时,您将收到错误.

这个api似乎不支持JSONP.如果你使用jquery触发ajax,它会将一个回调字符串附加到jsonp回调的url.

例如:http://cjzn.streamon.fm/metadata/recentevents/CJZN-48k.json?callback = jQuery19105709207213949412_1373047199605&_ = 1373047199606

但响应并没有包含在具有回调名称的函数中,理想情况下响应应该是:

jQuery19105709207213949412_1373047199605(jsonData);
Run Code Online (Sandbox Code Playgroud)

但它没有,相反它只是给出了json响应.