gpt4 book ai didi

javascript - 简化 JavaScript 对象的 JSON 输出

转载 作者:行者123 更新时间:2023-11-28 07:39:21 24 4
gpt4 key购买 nike

这是我的第一篇文章。我对 JavaScript 对象还很陌生,我花了一天时间试图弄清楚,但我仍然陷入困境......我希望有人能给我一个提示。

基本上,我有 2 个或更多表单需要通过 ajax 调用序列化和发送数据。

我有这些表格:

<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>

还有这个 JavaScript 函数:

function ConvertFormToJSON(target_form)
{
var form = $(target_form);

var arr = [];

form.each(function()
{
var obj = {};

var sr = $(this).serializeArray();

obj = $.each(sr, function()
{
sr[this.name] = this.value;
});

arr.push(obj);
});

return JSON.stringify(arr);
}

ConvertFormToJSON('.lang_block');

输出:

"[
[
{
"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');

关于javascript - 简化 JavaScript 对象的 JSON 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28245571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com