簡體   English   中英

在jQuery中將HTML表數據轉換為JSON對象

[英]Convert a HTML table data into a JSON object in jQuery

任何人都知道如何將HTML值表轉換為一個好的JSON對象,以便使用jQuery進行操作?

一張HTML表格? 比如, <td>數組中的所有<td>內容?

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

然后只需使用$ .json(或任何你想要的庫)將其轉換為JSON字符串。

編輯 - 重寫以使用數組原型中的native( shim here.map()

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插件table-to-json:

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

您所要做的就是使用jQuery選擇表並調用插件:

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

以下是它的實際演示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM