Javascript 如何将JSON字符串放入对象而不是一个长字符串

Javascript 如何将JSON字符串放入对象而不是一个长字符串,javascript,json,ajax,Javascript,Json,Ajax,我的JSON字符串如下所示: { "main_object":{ "id":"new", "formData":"language=nl_NL&getExerciseTitle=3213&question_takeAudio_exerciseWord%5B0%5D=3213&Syllablescounter%5B0%5D=3213S&Syllablescounter%5B1%5D=321" } } 正如你所看到的,我有

我的JSON字符串如下所示:

{  
   "main_object":{  
      "id":"new",
      "formData":"language=nl_NL&getExerciseTitle=3213&question_takeAudio_exerciseWord%5B0%5D=3213&Syllablescounter%5B0%5D=3213S&Syllablescounter%5B1%5D=321"
   }
}
正如你所看到的,我有
language=nl\u nl
,但我希望它像这样->
“language”:“nl\u nl
等等,而不是介于两者之间的
&

这很可能是导致长字符串->

function saveExerciseAjaxCall() {
    $("#my_form").on("submit", function(event) {
        event.preventDefault();
        $.ajax({
            url: 'saveJson.php',
            type: 'POST',
            data: {
                id: getUrlParameter('id'),
                formData: $('#my_form').serialize()
            },
            dataType: 'json',
        }).done(function(response) {

        });
    });
}
它被
serialize()
,但老实说:我不知道如何改变它,我读了一些关于
serializeArray()
,但它会显示在我的JSON文件中,如下->
“name”:“exampleForStackOverflow”:“value”:“给定的值”
类似的内容。
那么,有没有人能解决如何更改我的AJAX,使其不会变成一个长字符串的问题呢?但要使其像
“language”:“nl_nl”
等?

您可以将urlParameter格式转换为如下对象:

var obj={
“id”:“新”,
“formData:“language=nl_nl&getExerciseTitle=3213&question_takeAudio_exerciseWord%5B0%5D=3213&SyllelesCounter%5B0%5D=3213&SyllelesCounter%5B1%5D=321”
};
obj.formData=JSON.parse(“{”+decodeURI(obj.formData).replace(/”/g,“\\”).replace(/&/g,“,”).replace(/=/g,“:”)+“}”);

console.log(obj.formData);
看一看我看了一下,@STEEL有一个很好的解决方案(看起来),但我想知道:.datahere在他的代码中意味着什么?他指的是哪些数据?如果你不介意我问的话,我应该在哪里实现这段代码?你有var obj=,然后是直接字符串,但是如果var obj必须保持一个变量(因为数据随着插入和发送的所有内容不断变化),该怎么办非常感谢,非常感谢。一周的痛苦终于奏效了。上帝保佑你的双手。@D.Sof此外,你可以尝试:
数据:$('#形式')。serialize()+“&id=“+getUrlParameter('id')
,可能更有效。它如何更充分?操作更少