如何将html表转换为JSON String。
示例:
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>Car</td>
<td>Year</td>
</tr>
<tr>
<td>Nissan</td>
<td>2009</td>
</tr>
<tr>
<td>Chrysler</td>
<td>2004</td>
</tr>
</tbody>
</table>
类似于:$('table tr').toJSON
打印出td
答案 0 :(得分:4)
试试这个
var rowList = new Array();
$("table tr").each(function () {
var colList = new Array();
$("td", this).each(function () {
colList.push($(this).text());
});
rowList.push(colList);
});
rowList
是td
答案 1 :(得分:1)
确保您拥有与table
相关联的ID,然后您可以将所有td
内容转换为数组数组(我的意思是二维数组)
var tableData = $('table#yourId tr').map(function() {
return $(this).find('td').map(function() {
return $(this).html();
}).get();
}).get();
现在tableData将包含所有tds数据。
答案 2 :(得分:1)
使用$('table tr')获取数组中的表数据.find('td')。each()
这使用JSON.stringify函数使其成为字符串。
JSON.stringify(carsArray)
答案 3 :(得分:1)
我对上述所有解决方案都不满意,最后编写了自己的jQuery插件来实现这一目标。它与解决方案非常相似,但接受几个选项来自定义结果,例如忽略隐藏的行,覆盖列名称和覆盖单元格值
如果这更符合您的要求,可以在此处找到该插件以及一些示例:https://github.com/lightswitch05/table-to-json
答案 4 :(得分:1)
尝试这个..做一个firebug并看到JSON结果..在这里你将指定你的选择器的值。根据需要更改选择器
function TableDataToJSON() {
var list= [];
var $headers = $("#list> thead >tr >th"); //header selector
var $rows = $('#list> .trClass').each(function (index) {//row selector
$cells = $(this).find("td");
list[index] = {};
$cells.each(function (cellIndex) {
list[index][$($headers[cellIndex]).attr('id')] = $(this).text();
});
});
var myObj = {};
myObj.person= list;
return JSON.stringify(myObj);
//this one $($headers[cellIndex]).attr('id') will give a property name to your
//json values e.g {Firstname: 'John'}
}
答案 5 :(得分:0)