在jQuery中将HTML表数据转换为JSON对象

2021/01/28 16:11 · jquery ·  · 0评论

有谁知道如何将HTML值表转换为漂亮的JSON对象以使用jQuery进行操作?

HTML表格?就像<td>二维数组中的所有内容一样

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

然后只需使用$ .json(或您想要的任何库)将其转换为JSON字符串即可。

编辑—重新编写以使用数组原型中的本机(此处.map()shim

var tbl = $('table#whatever tr').get().map(function(row) {
  return $(row).find('td').get().map(function(cell) {
    return $(cell).html();
  });
});

jQuery.map()函数具有将返回的数组展平为结果数组的“功能”。也就是说,如果回调函数返回的值本身就是一个数组,则不是将返回的数组变成结果的一个单元格的值,而是将.map()其元素分别添加到结果中。

可能工作,使用原来的jQuery版本,只是环绕返回值的额外阵列。

您是指以下情况吗?

鉴于:

A1 B1 C1 ...
A2 B2 C2 ...
...

需要:

{"1": ["A1", "B1", "C1", ...], 
 "2": ["A2", "B2", "C2", ...], ...}

因此,请使用下面的函数创建一个有效的JSON-String函数,而不要在其后加上“,”:

function html2json() {
   var json = '{';
   var otArr = [];
   var tbl2 = $('#dest_table tr').each(function(i) {        
      x = $(this).children();
      var itArr = [];
      x.each(function() {
         itArr.push('"' + $(this).text() + '"');
      });
      otArr.push('"' + i + '": [' + itArr.join(',') + ']');
   })
   json += otArr.join(",") + '}'

   return json;
}

除了具有忽略列,覆盖值以及不被嵌套表混淆的能力外,我还需要做同样的事情。我最终写了一个jQuery插件表到JSON:

https://github.com/lightswitch05/table-to-json

您所要做的就是使用jQuery选择表并调用插件:

var table = $('#example-table').tableToJSON();

这是一个实际的演示:

http://jsfiddle.net/Crw2C/173/

本文地址:http://jquery.askforanswer.com/zaijqueryzhongjianghtmlbiaoshujuzhuanhuanweijsonduixiang.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!