通过忽略特定列将 HTML 表数据转换为 jQuery 中的 JSON 对象

Posted

技术标签:

【中文标题】通过忽略特定列将 HTML 表数据转换为 jQuery 中的 JSON 对象【英文标题】:Convert a HTML table data into a JSON object in jQuery by ignoring particular column 【发布时间】:2019-09-19 18:16:15 【问题描述】:

通过忽略特定列值将 html 值表转换为 JSON 对象以使用 jQuery 进行操作

例如: 我有一张桌子,

fstname lastName    Age
john    gobby   8
Adams   mekander    10
jimmy   Rumpel  11

我需要下面提到的 json 结果,

我的代码如下,

$(document).ready(function () 
            $("#ConvertJsonButton").click(function () 
                var myRows = [];
                var headers = [];
$("#tablesort tr#datajson").each(function(index) 
    if (index === 0) 
                //for headers
                   $cells = $(this).find("td.cellClass");
                    headers[index] = ;                 
    $cells.each(function (cellIndex)                                   
    headers[cellIndex] = $(this).text();                                                    
                 );
                   
    else                       
                $cells = $(this).find("td.cellClass");
        myRows[index] = ;
    $cells.each(function (cellIndex)                                                   
        myRows[index][headers[cellIndex]] = $(this).text();
            );                     
                    
    );             
        var myObj = ;
        myObj.myrows = myRows;              
        alert(JSON.stringify(myObj));               
            );
        );

我想要这个结果:


  "john": 
    "lastName": "gobby",
    "Age": "8"
  ,
  "Adams": 
    "lastName": "Mekander",
    "Age": "10"
  ,
  "jimmy": 
    "lastName": "Rumpel",
    "Age": "11" 
  ,

【问题讨论】:

Sooo...你到底想要什么? 简单的方法是创建姓氏和年龄的对象数组,并将数组的每个对象分配给名字 @Manjunath- 你能把代码分享给我吗 您的问题不清楚。您是在尝试忽略特定列,还是实际上是在尝试忽略特定列具有特定值的行? 不,实际上我试图忽略特定列 firstName-@Tibrogargan 【参考方案1】:

使用jquery.tabletojson.min.js

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/table-to-json@1.0.0/lib/jquery.tabletojson.min.js" integrity="sha256-H8xrCe0tZFi/C2CgxkmiGksqVaxhW0PFcUKZJZo1yNU=" crossorigin="anonymous"></script>
<script>
$(document).ready(function()
  $('#run').click( function() 
    var table = $('#example-table').tableToJSON();
    var data = ;
    $.each(table, function(key, value) 
        var jsonKey = value.firstname;
        var map = ;
        map = value;
        map.firstname = undefined;
        data[jsonKey] = map;
    ); 
    alert(JSON.stringify(data));
    console.log(JSON.stringify(data));
);
);
</script>
</head>
<body>

<table id="example-table" class="table table-striped" border="1">
   <thead>
      <tr>
         <th>firstname</th>
         <th>lastname</th>
         <th>age</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>john</td>
         <td>goby</td>
         <td>8</td>
      </tr>
      <tr>
         <td>Adams</td>
         <td>mekander</td>
         <td>10</td>
      </tr>
      <tr>
         <td>jimmy</td>
         <td>Rumpel</td>
         <td>11</td>
      </tr>
   </tbody>
</table>
<button id="run" class="btn btn-primary">Convert!</button>

</body>
</html>

【讨论】:

var jsonKey = value.firstname; map.firstname = 未定义;你能解释一下这些行吗 @priya 将任何键值设置为undefined 将从对象中删除该键。 谢谢你,苏迪尔。你的代码对我有用......而且我有一个普遍的疑问,我可以在表格中取消定义整个列吗??

以上是关于通过忽略特定列将 HTML 表数据转换为 jQuery 中的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

使用 aws dms 仅按特定列将 mongodb 表迁移到 mysql

根据其他列将数据框的一列转换为numpy数组或张量

如何根据日期列将行转换为列?

转换具有 numpy 数组的列将其转换为 dtype 作为对象的 numpy 数组

Pandas:将分隔符值传递给 read_csv(),这样,其中 1 列将被忽略

如何根据 bigquery 中的时区列将 UTC 时间转换为本地时区?