如何从HTML表单创建分层JSON字符串

时间:2014-03-17 15:38:15

标签: jquery html json forms

我有一个基本的HTML表单,如下所示:

<html>
<form id="myform" action="something.cgi" method="post">
<select name="Container">
<option>container 1</option>
<option>container 2</option>
</select>
<input name="element1" type="text">
<!-- ... -->
</html>

我的目标是让用户进行一些配置并将其保存到配置文件中,我可以从另一个应用程序中读取它。我正在寻找一种方法来创建像这样的JSON字符串

{
"Container 1": 
{
    "Group 1":
    {
        "element1": "value1",
        "element2": "value2"
    }
    "Group 2":
    {
        "element3": "value3",
        "element4": "value4"
    }
}
}

我读了这个POST data in JSON format,但是使用JSON.stringify方法返回类似于:

的内容
{
    "Container": "Container 1",
    "element1": "value1",
    "element2": "value2",
    "element3": "value3",
    "element4": "value4",
}

我想知道是否有标准方法可以做到这一点?感谢帮助!

1 个答案:

答案 0 :(得分:3)

如果你想使用javascript,你需要明确地构建它,即:

var finalData = {
    Container:{
        'Group 1':{
            element1:'value1',
            element2:'value2'
        },
        'Group 2':{
            element3:'value3',
            element4:'value4'
        }
    }
};

JSON.stringify(finalData);

但是如果你需要它是动态的,你需要使用Constructors等相当棘手。由于你是基于HTML表单,我想项目列表是有限的,因此上面的对象文字设置应该适用于你想要的。