使用jquery或javascript从作为数组的json结构绘制表
我得到一个JSON对象。我必须从中打印一个表格结构。调试后,我发现该对象如下所示使用jquery或javascript从作为数组的json结构绘制表,javascript,jquery,json,jquery-ui,javascript-objects,Javascript,Jquery,Json,Jquery Ui,Javascript Objects,我得到一个JSON对象。我必须从中打印一个表格结构。调试后,我发现该对象如下所示 tableData = {title: "Schema", cellValues: Array[2], id: 1, name: "CSV", type: "table"} 当我进行进一步调试时,我发现了以下结果 var tableRows = tableData.cellValues; tableRows = [Array[4], Array[4]] 如果我做一个console.log(tableRows),
tableData = {title: "Schema", cellValues: Array[2], id: 1, name: "CSV", type: "table"}
当我进行进一步调试时,我发现了以下结果
var tableRows = tableData.cellValues;
tableRows = [Array[4], Array[4]]
如果我做一个console.log(tableRows),它会给出-->c1、c2、c3、c4、DoubleType、DoubleType、DoubleType、DoubleType、DoubleType
我必须以表格的形式把它打印出来
c1 count c1 count
DoubleType LongType DoubleType LongType
我不知道该怎么做。如何操作它来获得表结构。我会非常感激你的帮助。谢谢..我可以试试这样的东西。我使用了三行数据,包括标题数据来扩展演示
var tableData = {
cellValues: [
['c1', 'c2', 'c3', 'c4'],
['DoubleType', 'longType', 'DoubleType', 'longType'],
['Bob', 'Dave', 'Bob', 'Dave']
]
}
将cellValues中的第一个数组移到headerData
<代码>车身数据是剩下的
var headerData = tableData.cellValues.shift();
var bodyData = tableData.cellValues;
基于Hashmap的助手函数,该函数根据类型提供单元格行
function buildCells(data, type) {
return {
header: '<th>' + data.join('</th><th>') + '</th>',
row: '<td>' + data.join('</td><td>') + '</td>'
}[type];
}
用适当的标记填充标题、正文和最后的表格
var header = ['<thead>', buildCells(headerData, 'header'), '</thead>'].join('');
var body = ['<tbody>', rows.join(''), '</tbody>'].join('');
var table = ['<table>', header, body, '</table>'].join('');
var header=['',buildCells(headerData,'header'),'')。连接('';
var body=['',rows.join('','').join('');
变量表=['',标题,正文,''。联接('';
现在你可以用HTML做你喜欢的事情了。在本例中,我使用insertAdjacentHTML
将其添加到元素中
可能重复的
longType
来自何处?我想说的是,您的单元格值似乎与所需的输出不匹配。@MikeC。。我认为情况不同。因为,在JSON中,当我在调试模式下运行时,我得到的数据是cellValues:Array[2]。如果我像你刚才提到的那个样,构建起来会容易得多。@Andy对不起,这是打字错误。。它的DoubleType@Andy我想举个例子。。这张桌子应该是什么样子。。2行和列的数量取决于我得到的值的数量
var rows = bodyData.reduce(function(p, c) {
return p.concat(buildRow(c));
}, []);
var header = ['<thead>', buildCells(headerData, 'header'), '</thead>'].join('');
var body = ['<tbody>', rows.join(''), '</tbody>'].join('');
var table = ['<table>', header, body, '</table>'].join('');