简化JavaScript对象的JSON输出
这是我的第一篇文章。 我对JavaScript对象非常陌生,我花了一天的时间试图弄明白,但我仍然被卡住了。。。我希望有人能给我小费 基本上,我有两个或更多的表单,需要通过ajax调用序列化和发送数据 我有以下表格:简化JavaScript对象的JSON输出,javascript,arrays,json,Javascript,Arrays,Json,这是我的第一篇文章。 我对JavaScript对象非常陌生,我花了一天的时间试图弄明白,但我仍然被卡住了。。。我希望有人能给我小费 基本上,我有两个或更多的表单,需要通过ajax调用序列化和发送数据 我有以下表格: <form class="lang_block"> <fieldset> <legend>it</legend> <input name="language" value="Itali
<form class="lang_block">
<fieldset>
<legend>it</legend>
<input name="language" value="Italiano" type="text">
<input name="data" value="data_it" type="text">
<input name="temp" value="temp_it" type="text">
</fieldset>
</form>
<form class="lang_block">
<fieldset>
<legend>en</legend>
<input name="language" value="English" type="text">
<input name="data" value="data_en" type="text">
<input name="temp" value="temp_en" type="text">
</fieldset>
</form>
输出:
"[
[
{
"name": "language",
"value": "Italiano"
},
{
"name": "data",
"value": "data_it"
},
{
"name": "temp",
"value": "temp_it"
}
],
[
{
"name": "language",
"value": "English"
},
{
"name": "data",
"value": "data_en"
},
{
"name": "temp",
"value": "temp_en"
}
]
]"
我希望实现的输出:
"[
{
"language": "Italiano",
"data": "data_it",
"temp": "temp_it",
},
{
"language": "English",
"data": "data_en",
"temp": "temp_en",
}
]"
您正在sr而不是对象上设置值。试一试:
function ConvertFormToJSON(target_form)
{
var form = $(target_form);
var arr = [];
form.each(function()
{
var obj = {};
var sr = $(this).serializeArray();
$.each(sr, function() {
obj[this.name] = this.value;
});
arr.push(obj);
});
return JSON.stringify(arr);
}
ConvertFormToJSON('.lang_block');
很明显,您使用的是jQuery,根本不需要执行任何操作,只需调用
$('form').serialize()
,并使用$发送数据。ajax
谢谢adeneo,但我正在尝试做另一件事:)宾果!谢谢你,阿杜比亚!:)@sXe很高兴我能帮上忙,如果它解决了您的问题,您能将此标记为选定答案吗?谢谢!
function ConvertFormToJSON(target_form)
{
var form = $(target_form);
var arr = [];
form.each(function()
{
var obj = {};
var sr = $(this).serializeArray();
$.each(sr, function() {
obj[this.name] = this.value;
});
arr.push(obj);
});
return JSON.stringify(arr);
}
ConvertFormToJSON('.lang_block');