1

如何将 html 表转换为 JSON 字符串。

例子 :

<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

4

6 回答 6

4

尝试这个

 var rowList = new Array();
    $("table tr").each(function () {
        var colList = new Array();
        $("td", this).each(function () {
            colList.push($(this).text());
        });
        rowList.push(colList);
    });

是 td 中所有值的rowList二维列表

于 2012-05-29T10:13:25.703 回答
1

试试这个.. 做一个萤火虫并查看 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'}
}
于 2013-04-16T09:00:09.503 回答
1

确保您有关联的 id table,然后您可以将所有td内容转换为数组数组(我的意思是二维数组)


var tableData = $('table#yourId tr').map(function() {
  return $(this).find('td').map(function() {
    return $(this).html();
  }).get();
}).get();

现在 tableData 将包含所有 tds 数据。

于 2012-05-29T10:09:09.823 回答
1

我对上面的所有解决方案都不满意,最终编写了我自己的 jQuery 插件来实现这一点。它与解决方案非常相似,但接受多个选项来自定义结果,例如忽略隐藏行、覆盖列名和覆盖单元格值

如果这更符合您的要求,可以在此处找到该插件以及一些示例:https ://github.com/lightswitch05/table-to-json

于 2013-02-10T15:16:48.860 回答
1

使用 $('table tr').find('td').each() 获取数组中的表数据

这使用 JSON.stringify 函数使其成为字符串。

JSON.stringify(carsArray)

于 2012-05-29T10:13:59.960 回答
0

我不确定编码解决方案,但有一个可用的 java-Script 库请试试这个

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

于 2012-05-29T10:05:24.763 回答