来自ajax的json响应显示在一个表中,现在显示字符串的json isnteal

时间:2016-04-05 19:04:27

标签: jquery json ajax

我正在尝试使用来自ajax的json响应创建一个表。它目前构建一个表,但它显示td

中响应的每个json字符

inline fun <reified T : Any> mock() = Mockito.mock(T::class.java)

Here is the screenshot of the "table",

我需要将此转换为正确的表,只为其指定的列中的值。请帮忙。

修改

完整代码

  success: function (msg) {
        $.each(msg, function (i, item) {
            var tds = "";
            $.each(item, function (i, item) {
                tds += "<td>" + item + "</td>";
            });
            $('#table1').append("<tr>" + tds + "</tr>");
        });
    }

以上代码的问题

我现在得到[object Object]语法错误

1 个答案:

答案 0 :(得分:1)

问题是因为msg值是一个字符串,因为jQuery没有正确解释请求的响应类型。要解决这个问题,你可以;按照偏好顺序,最好到最差:

  1. 在向AJAX请求发送响应时设置正确的内容类型(application/json
  2. 手动将dataType设置的$.ajax()属性设置为'json'
  3. 在成功方法中使用JSON.parse
  4. 以上所有假设您返回的字符串的格式是有效的JSON。您可以在http://jsonlint.com

    处自行测试
      

    它已经设置为application / json,请你好好地展示如何使用Json / parse。

    如果是这样的话,你应该真正了解为什么它不能正常工作,因为它是迄今为止解决这个问题的最佳解决方案。也就是说,要手动设置dataType,请执行以下操作:

    $.ajax({
        url: 'foo.php',
        dataType: 'json',
        success: function(obj) {
            // console.log(obj.foo);
        }
    });
    

    要手动解析字符串中的JSON,您可以执行以下操作:

    $.ajax({
        url: 'foo.php',
        success: function(msg) {
            var obj = JSON.parse(msg);
            // console.log(obj.foo);
        }
    });