在jquery中将HTML表转换为JSON

时间:2012-05-29 10:01:06

标签: jquery json

如何将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

的所有值

6 个答案:

答案 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)

我不确定编码解决方案,但有一个java脚本库可用,请尝试this

fastfrag json会将所有html转换为json格式。只需在文本区域中复制代码,然后单击下面的链接即可。它还在github

上有代码存储库