javascript - 如何将序列化形式转换为具有标签列表的json格式

标签 javascript jquery ajax json forms

这是我的表格:

<form>
 <input type="text" value="value1a" name="parentobject.childobject[0].field1"/>
 <input type="text" value="value2a" name="parentobject.childobject[0].field2"/>
 <input type="text" value="value3a" name="parentobject.childobject[0].field3"/>

 <input type="text" value="value1b" name="parentobject.childobject[1].field1"/>
 <input type="text" value="value2b" name="parentobject.childobject[1].field2"/>
 <input type="text" value="value3b" name="parentobject.childobject[1].field3"/>
</form>

当我使用 JSON.stringify($('form').serializeArray()) 时,值转换为 json 但不是我预期的结果。

使用 JSON.stringify($('form).serializedArray()) 后的输出

{
 "parentobject.childobject[0].field1" : "value1a"
 "parentobject.childobject[0].field2" : "value2a"
 "parentobject.childobject[0].field3" : "value3a"
 "parentobject.childobject[1].field1" : "value1b"
 "parentobject.childobject[1].field2" : "value2b"
 "parentobject.childobject[1].field3" : "value3b"
} 

这是我的预期结果:

 {
    "parentobject": {
        "childobject": [
            {
                "field1": "value1a",
                "field2": "value2a",
                "field3": "value3a"
           },
            {
                "field1": "value1b",
                "field2": "value2b",
                "field3": "value3b"
            }
    ]
}

我希望有人能提供帮助。提前致谢。

最佳答案

你可以使用 eval()功能

var parentobject = {
    childobject: [{}, {}]
}
var arr = $('form').serializeArray();
for(var i=0;i<arr.length;i++)
{
eval(arr[i].name+"='"+arr[i].value+"'");
}
alert(JSON.stringify(parentobject))

DEMO

关于javascript - 如何将序列化形式转换为具有标签列表的json格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26626418/

相关文章:

javascript - Vue CLI 不处理从 Vue 文件导入的 node_modules 中的 JS 文件

php - 在提交表单时加载跟踪脚本

javascript - 有没有办法让页面的隐藏内容向上滑动到页面中? jQuery/JavaScript

jquery - 单击下拉列表(元素后元素)

php - 下拉列表框中的复选框内的复选框

javascript - 如何使用 place_id 获取地点详细信息?

javascript - 如何在 javascript 中使用服务器端倒数计时器?

ajax - JSONP 是否被归类为 AJAX?

jquery - 迭代 JSON 数组 : Get name of the parameter

javascript - css 不是第一次应用,而是第二次应用