如何以表格格式显示json数组? [复制]

Posted

技术标签:

【中文标题】如何以表格格式显示json数组? [复制]【英文标题】:How to display a json array in table format? [duplicate] 【发布时间】:2013-08-26 02:24:45 【问题描述】:

我有一个这种格式的 json 数组:

[
    
        id : "001",
        name : "apple",
        category : "fruit",
        color : "red"
    ,
    
        id : "002",
        name : "melon",
        category : "fruit",
        color : "green"
    ,
    
        id : "003",
        name : "banana",
        category : "fruit",
        color : "yellow"
    
]

现在,我想用 javascript 或 jQuery 以表格格式解析和显示它。该表有四列,每一列表示该数组中每个元素的每个属性。该表的第一行是这四个键的名称。其他行是这些键的值。

我不知道怎么写一段JavaScript代码来实现这个功能。你能帮我解决这个问题吗?

【问题讨论】:

你有什么尝试过的吗? 可能重复。 github.com/afshinm/Json-to-html-Table 一年前@Afshin Mehrabani 已经建议了该链接。试一试 这是学校作业吗?这是我第二次看到这个确切的问题,只是另一个用户 看到人们回答一个显示零研究工作的问题让我感到难过:(这个问题已经被问过很多次了。 有人已经为此提供了答案,***.com/questions/13947067/… 【参考方案1】:

DEMO

var obj=[
        
            id : "001",
            name : "apple",
            category : "fruit",
            color : "red"
        ,
        
            id : "002",
            name : "melon",
            category : "fruit",
            color : "green"
        ,
        
            id : "003",
            name : "banana",
            category : "fruit",
            color : "yellow"
        
    ]
    var tbl=$("<table/>").attr("id","mytable");
    $("#div1").append(tbl);
    for(var i=0;i<obj.length;i++)
    
        var tr="<tr>";
        var td1="<td>"+obj[i]["id"]+"</td>";
        var td2="<td>"+obj[i]["name"]+"</td>";
        var td3="<td>"+obj[i]["color"]+"</td></tr>";

       $("#mytable").append(tr+td1+td2+td3); 

       

【讨论】:

我正在使用.each,它只显示最后一个值。.append 在 2 个嵌套的 .each 中。 jQuery.each(arrayobj, function(key, value) jQuery.each(value, function(label, answer) display = '&lt;tr&gt;&lt;td&gt;'+label+ '&lt;/td&gt;&lt;td&gt;' +answer+'&lt;/td&gt;&lt;/tr&gt;'); ); $('#tbody').append(display); 标题在哪里?【参考方案2】:

使用jquery $.each,您可以访问所有数据,也可以像这样在表格中设置

<table style="width: 100%">
     <thead>
          <tr>
               <th>Id</th>
               <th>Name</th>
               <th>Category</th>
               <th>Color</th>
           </tr>
     </thead>
     <tbody id="tbody">
     </tbody>
</table>

$.each(data, function (index, item) 
     var eachrow = "<tr>"
                 + "<td>" + item[1] + "</td>"
                 + "<td>" + item[2] + "</td>"
                 + "<td>" + item[3] + "</td>"
                 + "<td>" + item[4] + "</td>"
                 + "</tr>";
     $('#tbody').append(eachrow);
);

【讨论】:

嘿 NaYan 这对我不起作用..仅显示最后一个数组值。我正在使用嵌套的.each。 jQuery.each(arrayobj, function(key, value) jQuery.each(value, function(label, answer) display = '&lt;tr&gt;&lt;td&gt;'+label+ '&lt;/td&gt;&lt;td&gt;' +answer+'&lt;/td&gt;&lt;/tr&gt;'); ); $('#tbody').append(display); 嘿禁止SO,你的代码必须是这样的:jQuery.each(arrayobj, function(key, value)jQuery.each(value, function(label, answer)display = '' + 标签 + ' ' + 答案 + '';$('#tbody').append(display););) ;【参考方案3】:
var jArr = [

    id : "001",
    name : "apple",
    category : "fruit",
    color : "red"
,

    id : "002",
    name : "melon",
    category : "fruit",
    color : "green"
,

    id : "003",
    name : "banana",
    category : "fruit",
    color : "yellow"

]

var tableData = '<table><tr><td>Id</td><td>Name</td><td>Category</td><td>Color</td></tr>';
$.each(jArr, function(index, data) 
 tableData += '<tr><td>'+data.id+'</td><td>'+data.name+'</td><td>'+data.category+'</td><td>'+data.color+'</td></tr>';
);

$('div').html(tableData);

【讨论】:

【参考方案4】:
var data = [
    
        id : "001",
        name : "apple",
        category : "fruit",
        color : "red"
    ,
    
        id : "002",
        name : "melon",
        category : "fruit",
        color : "green"
    ,
    
        id : "003",
        name : "banana",
        category : "fruit",
        color : "yellow"
    
];

for(var i = 0, len = data.length; i < length; i++) 
    var temp = '<tr><td>' + data[i].id + '</td>';
    temp+= '<td>' + data[i].name+ '</td>';
    temp+= '<td>' + data[i].category + '</td>';
    temp+= '<td>' + data[i].color + '</td></tr>';
    $('table tbody').append(temp));

【讨论】:

以上是关于如何以表格格式显示json数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

以预期格式打印 JSON 数组

通过 Mule 4 发送电子邮件时 JSON 数组到表结构格式

安卓开发前后台通信,从数据库中取数据并在前台以表格形式显示,以json格式传输

如何以 JSON 格式回显 XML 的内容? [复制]

如何在 Snowflake 中将 json 转换为表格格式

SQl 在整数和 json 数组上加入表格以获取整数