AJAX请求返回JSON?

时间:2013-04-29 21:36:13

标签: jquery ruby-on-rails ruby ajax json

所以我正在使用AJAX从网站上搜集播放器名称及其各自的评级。我有AJAX返回一个JSON对象,我正在尝试使用jQuery将JSON对象的每个元素作为列表项追加到有序列表中。

以下是代码:

$('#rankings_link').click(function(){
    $.ajax({
        dataType: 'json',
        url: '/rankings',
        type: 'get'
    }).done(function(received_data){
        for (var m = 0; m < received_data.length; m++) {
            $('#rankings ol').append('<li>' + received_data[m] + '</li>');
  }

但是当我查看我的localhost:3000 /排名页面时,它只是一大堆玩家名称(正确排序),但根本没有格式化为列表。

这里发生了什么?

提前致谢, Mariogs

2 个答案:

答案 0 :(得分:0)

http://www.w3schools.com/json/json_eval.asp

我会使用eval将json字符串转换为可以通过

循环数组的对象
var rankings = eval ("(" + received_data + ")");

for (var m = 0; m < rankings.length; m++) {
        $('#rankings ol').append('<li>' + rankings[m].(whatever piece of data you want from your json object) + '</li>');

}

如果您仍然无法告诉我您的json字符串是什么样的。

答案 1 :(得分:0)

我会使用$ .each循环来对收到的数据进行排序。 json对象是一组无序的键/值对。当你使用$ .each循环时,你可以将它们分开并利用你正在寻找的价值(玩家信息)。像这样:

$('#rankings_link').click(function(event){
    event.preventDefault();
    $.ajax({
        dataType: 'json',
        url: '/rankings',
        type: 'get'
    }).done(function(received_data){
        $.each(received_data, function(index, player){
            $('#rankings ol').append('<li>' + player + '</li>');
        });
    });
 });