【问题标题】:ajax json parsing errorajax json解析错误
【发布时间】:2015-11-10 01:59:52
【问题描述】:
json : {"status" : 0, "err_msg": "", "list":[{"id":100, "username":"la", num:"0100000"}]}

<script>
$.ajax({
type : "POST",
    url : "myAPI",
    data: "{ \"offset\" : 0, \"limit\" : 10 }",
    dataType : "json",
    success : function(json) {
    var message_list = json.list;
    var list_count = message_list.length;
    $.each(list_count, function() {
        var message_id = message_list.id;
        var message_username = message_list.username;
        var message_num = message_list.num;

        var html = "<tr>";
        html += "<td>"+message_id+"</td>";
        html += "<td>"+message_username+"</td>";
        html += "<td>"+message_num+"</td>";
        html += "</tr>";

        $("#tablebody").append(html);
        });
    },
    error: function() {
        alert("에러");
    }
});
</script>

请修正一个错误我想成功:(

【问题讨论】:

  • 你确定你得到的是 json 类型作为响应吗?你不会成功的唯一方法是当你没有从 url 返回一个有效的 json 时
  • 请同时提供您遇到的错误。

标签: javascript jquery json ajax


【解决方案1】:

json 应该如下所示:

{
    "status": 0,
    "err_msg": "",
    "list": [
        {
            "id": 100,
            "username": "la",
            "num": "0100000"
        }
    ]
}

注意 num 也有双引号 如果您定义了 dataType json,那么您正在从服务器 API 等待一个 json 类型的对象,如果您收到解析错误,请确保您从 API 获取一个对象 json。

如果返回的 json 是来自服务器的那个,它应该是一个有效的。

【讨论】:

    【解决方案2】:

    你没有正确使用$.each。

    var message_list = json.list; // array
    var list_count = message_list.length; // length 
    $.each(list_count, function() { // why do you call `$.each(length)`?
        var message_id = message_list.id; // why do you call array.id?
        var message_username = message_list.username;
        var message_num = message_list.num;
    
        var html = "<tr>";
        html += "<td>"+message_id+"</td>";
        html += "<td>"+message_username+"</td>";
        html += "<td>"+message_num+"</td>";
        html += "</tr>";
    
            $("#tablebody").append(html);
            });
        }
    

    应该是:

    var message_list = json.list; // array
    
    $.each(message_list, function() { // $.each(array)
        var message_id = this.id; // "this" context - is an item
        var message_username = this.username;
        var message_num = this.num;
    
        var html = "<tr>";
        html += "<td>"+message_id+"</td>";
        html += "<td>"+message_username+"</td>";
        html += "<td>"+message_num+"</td>";
        html += "</tr>";
    
        $("#tablebody").append(html);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-08
      • 2014-12-04
      • 2013-07-23
      • 2012-10-13
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      相关资源
      最近更新 更多