简化JavaScript对象的JSON输出

简化JavaScript对象的JSON输出,javascript,arrays,json,Javascript,Arrays,Json,这是我的第一篇文章。 我对JavaScript对象非常陌生,我花了一天的时间试图弄明白,但我仍然被卡住了。。。我希望有人能给我小费 基本上,我有两个或更多的表单,需要通过ajax调用序列化和发送数据 我有以下表格: <form class="lang_block"> <fieldset> <legend>it</legend> <input name="language" value="Itali

这是我的第一篇文章。 我对JavaScript对象非常陌生,我花了一天的时间试图弄明白,但我仍然被卡住了。。。我希望有人能给我小费

基本上,我有两个或更多的表单,需要通过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>
输出:

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