Javascript 如何将表单字段转换为Json对象?
例如,表单包含具有以下名称的字段:txt01、txt02、txt03[]、txt03[]、txt04[name][]、txt04[name][]、txt04[phone][]、txt04[phone][]、txt05[][name]、txt05[][name]、txt05[][phone]。当我向这些字段输入值并单击submit按钮时,它将生成以下Json对象:Javascript 如何将表单字段转换为Json对象?,javascript,html,json,Javascript,Html,Json,例如,表单包含具有以下名称的字段:txt01、txt02、txt03[]、txt03[]、txt04[name][]、txt04[name][]、txt04[phone][]、txt04[phone][]、txt05[][name]、txt05[][name]、txt05[][phone]。当我向这些字段输入值并单击submit按钮时,它将生成以下Json对象: Object { txt01: "Text 01", txt02: "Text 02", txt03: Arr
Object {
txt01: "Text 01",
txt02: "Text 02",
txt03: Array(2) {
0: "Text 01",
1: "Text 02"
},
txt04: Object
{
name: Array()
{
0: Text 01
1: Text 02
},
phone: Array()
{
0: 000001
1: 000002
}
},
txt05: Array(2)
{
0: Object
{
name: Text 01
phone: 000001
},
1: Object
{
name: Text 02
phone: 000002
}
}
}
下面是要序列化为Json对象的表单。执行序列化的脚本应生成上述Json对象
<form>
<input type="text" name="txt01" value="Text 01" />
<input type="text" name="txt02" value="Text 02" />
<input type="text" name="txt03[]" value="Text 01" />
<input type="text" name="txt03[]" value="Text 02" />
<input type="text" name="txt04[name][]" value="Text 01" />
<input type="text" name="txt04[name][]" value="Text 02" />
<input type="text" name="txt04[phone][]" value="000001" />
<input type="text" name="txt04[phone][]" value="000002" />
<input type="text" name="txt05[][name]" value="Text 01" />
<input type="text" name="txt05[][phone]" value="000001" />
<input type="text" name="txt05[][name]" value="Text 02" />
<input type="text" name="txt05[][phone]" value="000002" />
<input type="submit" value="Submit" />
</form>
这是从
你可以试着四处寻找一些听起来很多人都可以使用的东西:)我在这里做了一些研究,但我没有找到适合我所做的事情的答案,所以我创建了一个解决方案。有关更多详细信息,请访问此处
请毫不犹豫地作出贡献。我希望这能有所帮助。我只是想分享一下我的想法。我只是使用本机javascript开发了一个json应用程序表单。您可以访问此链接: 示例表单
<form name="f1" onsubmit="return formToJson(this);">
<input type="text" name="username" value="dummyuser" / >
<input type="password" name="password" value="password123" />
<input type="submit" />
</form>
这也将把大多数表单元素(包括HTML5)映射到JSON数据中。希望这对你有帮助 仍然不清楚要求,但我想你可以这样做
var frm = $('form');
var data = JSON.stringify(frm.serializeArray());
你需要再解释一点,可能会显示一些HTML,以及你目前是如何尝试这样做的?@Varun已经提出了一个解决方案,你可能想看看这个。但如果你能从中有所贡献,请不要犹豫。我将不胜感激。根据请求,我还添加了表单。我已经尝试过了,但它只是将字段名直接映射为object的索引。JSON.stringify函数只会将serializeArray生成的对象转换为String。澄清问题:提交表单后,您应该能够将表单字段转换为json对象。虽然此代码片段可以解决问题,但确实有助于提高帖子的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!
{
username:"dummyuser",
password:"password123"
}
var frm = $('form');
var data = JSON.stringify(frm.serializeArray());
var myObj = new Object();
myObj.text01 = "Text 01";
myObj.text02 = "Text 02";
.
.
.
var string =JSON.stringify(myObj);