当前位置: 首页 > 工具软件 > json2html > 使用案例 >

把html转换为json数据,HTML转成JSON数据

邹丰羽
2023-12-01

例如以下HTML

01010004一次性注射器10ml

要转换成 {"ID":"01010004","Name":"一次性注射器","Specification":"10ml"} 进行存储

有什么插件或者思路

补充如下:

HTML结构:

  • 沈阳

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

  • 重庆

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

  • 西安

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

  • 广州

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

  • 深圳

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

  • 长春

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

  • 上海

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

    属于

    不属于

    包含

    不包含

    为空

    非空

    开头是

    结尾是

JS方法如下:(采用jQuery)

function getFilterTableData(tableID) {

var operatorMap = {

1: 'AND',

2: 'OR'

};

var conditionAndRangeMap = {

condition: function($obj) {

return $obj.children('select').val()

},

pickRange: function($obj) {

return {

val: $obj.children('select').val(),

mode: 'select'

}

},

editRange: function($obj) {

return {

val: $obj.children('input').val(),

mode: 'input'

}

},

nullRange: function($obj) {

return

}

};

var c = '.tableStyle-2-container',

h = '.tableStyle-2-operator',

b = '.tableStyle-2-content',

l = '.tableStyle-2-content-list',

li = '.tableStyle-2-content-list-unitRow',

label = '.unitRow-label';

var result = {};

var $start = $(tableID).children();

var looper = function($c, data) {

var $unitH = $c.children(h), //操作符

$unitB = $c.children(b), //内容

$unitB_children = $unitB.children(); //内容子节点

//如果有操作符

if($unitH.length) {

data.type = operatorMap[$unitH.attr('operator')];

}

//存储子节点信息

data.children = [];

//如果内容有子节点

if($unitB_children.length) {

var $unitL = $unitB.children(l); //内容 - 列表

var $unitC = $unitB.children(c); //内容 - 容器

if($unitL.length) {

var children = [];

var $lis = $unitL.children(li);

for(var i = 0, length = $lis.length; i < length; i++) {

var $label = $lis.eq(i).children(label);

var $condition = $label.next();

var $range = $condition.next();

var unitRowData = $.extend({

col: $label.text()

}, {

rel: conditionAndRangeMap[$condition.attr('class').split('-')[1]]($condition),

}, conditionAndRangeMap[$range.attr('class').split('-')[1]]($range));

children.push(unitRowData);

}

data.children.push({

children: children

});

}

if($unitC.length) {

data.children.unshift({});

looper($unitC, data.children[0]);

}

}

}

looper($start, result);

return result

}

var resultData = getFilterTableData('#businessData-filter-table');

console.log(JSON.stringify(resultData));

 类似资料: