1

我对 jQuery 和 JSON 很陌生。我需要解析以下格式的 JSON 以填充 html 表格 tbody:

{"response":[["name0","id0","amt0"],["name1","id1","amt1"]]}

但我不确定如何访问它们,所以通过以下方式获取 html 表:

header1 header2 header3
name0   id0     amt0
name1   id1     amt1
4

3 回答 3

9

未经测试,但可能类似于:

var jsondata=$.parseJSON('{"response":[["name0","id0","amt0"],["name1","id1","amt1"]]}');

$.each(jsondata.response, function(i, d) {
   var row='<tr>';
   $.each(d, function(j, e) {
      row+='<td>'+e+'</td>';
   });
   row+='</tr>';
   $('#table tbody').append(row);
});
于 2012-10-02T16:17:17.100 回答
1

jsonToHtmlTable(jsonObj, '#records');在 HTML 之后调用(例如,在文档准备好的时候)

html

<table id="records">
    <thead>
        <tr></tr>
    </thead>
    <tbody></tbody>
</table>

JavaScript

//Sample JSON Object (array of json objects)
var jsonObj = [{"a":1,"b":3,"ds":4},{"a":2,"b":5,"ds":4}];

//Use
$(document).ready(function(){
     jsonToHtmlTable(jsonObj, '#records');
});

//implementation
function jsonToHtmlTable(jsonObj, selector) {
    addColumns(jsonObj, selector);
    addRows(jsonObj, selector);
}

function addColumns(jsonObj, selector) {
    if (!$.isArray(jsonObj) || jsonObj.length < 1)
        return;
    var object = jsonObj[0];
    var theadHtml = "";
    for (var property in object) {
        if (object.hasOwnProperty(property))
            theadHtml += "<th>" + property + "</th>";
    }
    $(selector + ' thead tr').html(theadHtml);
}

function addRows(jsonObj, selector) {
    var tbody = $(selector + ' tbody');
    $.each(jsonObj, function (i, d) {
        var row = '<tr>';
        $.each(d, function (j, e) {
            row += '<td>' + e + '</td>';
        });
        row += '</tr>';
        tbody.append(row);
    });
}
于 2015-08-04T13:12:41.593 回答
0

您可以使用以下 Javascript 表达式访问 JSON 结构:

var matrix = {"response":[["name0","id0","amt0"],["name1","id1","amt1"]]};

第 i 个元素的第 j 列可通过以下方式访问:

matrix.response[i][j]
于 2012-10-02T16:17:10.047 回答