![](/img/trans.png)
[英]Convert a HTML table data into a JSON object in jQuery by ignoring particular column
[英]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();
以下是它的實際演示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.