Node.js中tableify转换JSON数组为HTML表格失败问题咨询
为什么tableify转换JSON数组时生成了错误的HTML表格?
咱先捋捋你遇到的问题:你得到的那个满是class="object"和undefined的HTML,肯定是数据格式或者工具使用方式没对上。这里有几个最可能的原因:
你可能传了未解析的JSON字符串,而不是JS对象数组
如果你的recordset是直接拿JSON格式的字符串赋值的(比如从文件或接口拿到的原始字符串),那tableify根本没法识别里面的结构——它会把字符串当成普通对象来处理,自然生成一堆无效的单元格。
解决办法很简单,先把字符串解析成JS对象数组:// 错误示例:直接传字符串 // var recordset = '[{"ID":"1", "Name":"John"},{"ID":"2", "Name":"Mary"}]'; // 正确做法:先解析 var recordset = JSON.parse('[{"ID":"1", "Name":"John"},{"ID":"2", "Name":"Mary"}]');tableify对直接传数组的支持可能有版本差异
有些版本的tableify更“喜欢”处理包含数组的对象,而不是直接喂给它一个数组。你可以把数组包在一个对象里,给它起个键名,这样工具就能正确识别表头和内容了:var html = tableify({ records: recordset });先确认你的数据结构是否正确
执行代码前先打印一下recordset:console.log(recordset),看看输出是不是标准的JS数组(里面是两个带ID和Name属性的对象)。如果输出是字符串或者结构奇怪的东西,那问题就出在数据赋值这一步。
给你个能跑通的完整示例:
var tableify = require('tableify'); // 确保是解析后的JS数组 var recordset = [{"ID":"1", "Name":"John"},{"ID":"2", "Name":"Mary"}]; // 把数组包在对象里(兼容性更好) var html = tableify({ data: recordset }); console.log(html);
这段代码应该会生成带正确表头(ID、Name)和数据行的HTML表格,不会再出现那些无效的单元格了。
内容的提问来源于stack exchange,提问作者Sal
相关产品推荐
相关产品推荐

