使用.map将Html创建为Json,面临的问题是将其格式化为精确格式



我正在创建具有节id和字段数据的动态节,并且我正在获得具有节id的所有数据。使用。map()函数与节id和数据值创建JSON,面对一些问题,如JSON格式是不正确的,我想。

还请告知这是正确的方式来做动态部分?我要走了,对吧?

下面是我的HTML代码:

<section id="section-1" class="section">
<input id="input1" value="input1">
<input id="input2" value="input2">
</section>
<section id="section-2" class="section">
<input id="input3" value="input3">
<input id="input4" value="input4">
</section>
和Jquery代码
var section = $(".section").map(function()
{
var section_obj = {};
var section_id = $(this).attr("id");

var data = $(this).find(':input').map(function()
{
var obj = {};
obj['id'] = $(this).attr("id");
obj['value'] = $(this).val();
return obj;
}).get();
section_obj[section_id] = data;
return section_obj;
}).get();

结果

[{"section-1":[{"id":"input1","value":"input1"},{"id":"input2","value":"input2"}]},{"section-2":[{"id":"input3","value":"input3"},{"id":"input","value":"input4"}]}]

我想要的结果应该是下面只需要删除第一部分}与第二部分开始{像简单的只是删除},{

[{"section-1":[{"id":"input1","value":"input1"},{"id":"input2","value":"input2"}],"section-2":[{"id":"input3","value":"input3"},{"id":"input","value":"input4"}]}]

试试这个:

var mergedSections = {};
var section = $(".section").map(function() {
var section_id = $(this).attr("id");
var data = $(this).find(':input').map(function() {
var obj = {};
obj['id'] = $(this).attr("id");
obj['value'] = $(this).val();
return obj;
}).get();
mergedSections[section_id] = data;
});
console.log(mergedSections);

但是你可以用[]来包装它来达到你的结果:

console.log([mergedSections]);

工作演示:https://jsfiddle.net/310wLyz9/

相关内容

最新更新