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

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

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

其次,我们可以使用jQuery.fn.map和jQuery.fn.get来创建一个数组数组( tr :s),其中包含td元素的jQuery.fn.text内容:

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

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

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

  

然后序列化你的数组:

 JSON.stringify(myTable) 

像这样的东西? 将每个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); }); 

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

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