将对象数组的AJAX响应转换为JSON对象

时间:2016-01-11 02:00:41

标签: javascript json ajax

我在这里有一个示例端点,它有一个JSON数据,但由于任何原因,我不明白为什么它会返回[object Object]

Mock API

我之前的代码有点令人困惑,但幸运的是我看到了另一个更清楚的答案。

function generateTable(data, selId){

    var cnt = "<table border=1>";

    cnt += "<tr>";
    $.each(JSON.parse(data), function(key,value){
       cnt += "<td><strong>" + key + "</strong></td>";
    });
   cnt += "<tr>";

   /* cnt += "<tr>";
   $.each(obj, function(key,value){
       cnt += "<td>" + value + "</td>";
   });
   cnt += "<tr>"; */ This part was commented because the conversion above does not work.
   cnt += "</table>";

   $(selId).html(cnt);

}

function createTableData(APIurl, selId){
    $.getJSON("http://jsonplaceholder.typicode.com/posts", function(data){
          generateTable(data, selId);
    });
}

当我尝试提醒返回的数据时,它会返回[object Object], [object Object], ...,依此类推。如何将API中的JSON数据转换为我可以在generateTable函数内访问的数组?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你需要迭代数组

var cnt = "<table border=1>";
for (var i=0, len=data.length; i<len; i++){
    var row = data[i];
    cnt += "<tr>";
    $.each(row, function(key,value){
       cnt += "<td><strong>" + key + "</strong></td>";
    });
   cnt += "</tr>";
}
cnt += "</table>";