使用jQuery迭代HTML表,将表中的数据转换为JSON

时间:2009-12-09 08:52:18

标签: jquery html json html-table

我遇到了一个需要将HTML表格数据转换为JSON的情况。在这个过程中,我必须遍历表并逐个(行)转换为数组,然后将整个数组转换为JSON。如何遍历表格(每行和每列)?

4 个答案:

答案 0 :(得分:8)

首先,fredrik指出我们需要包含https://github.com/douglascrockford/JSON-js

其次,我们可以使用jQuery.fn.mapjQuery.fn.get创建一个数组数组(tr:s),其中包含td的{​​{1}}内容元素:

var AoA = $('table tr').map(function(){
    return [
        $('td',this).map(function(){
            return $(this).text();
        }).get()
    ];
}).get();
var json = JSON.stringify(AoA);

答案 1 :(得分:4)

这样的东西? 将每个td的内容提取到myTable[rowIx][tableIx]数组中。

var myTable = [];
$('#myTable tr').each(function (i, tr) {
    var myTr = [];

    $('td', tr).each(function(j, td) {
        myTr.push($(td).html());
    });

    myTable.push(myTr);
});

答案 2 :(得分:4)

您还需要将JavaScript数组(也可以处理对象,字符串等)转换为JSON序列化字符串。

将此添加到您的页面(很快将添加到jQuery):

<script type="text/javascript" src="http://json.org/json2.js"></script>

然后序列化你的数组:

JSON.stringify(myTable)

答案 3 :(得分:0)

我为此写了一个插件,它有一些铃声和口哨声。请查看:

http://www.fletchzone.com/post/jQuery-Convert-HTML-Table-to-JSON.aspx