在使用ajax发送之前,将表单数据转换为json格式。

14 浏览
0 Comments

在使用ajax发送之前,将表单数据转换为json格式。

我正在尝试将表单数据转换为JSON并使用Jquery发送。我知道这个问题在SO上已经被问过很多次,到目前为止,这是我找到的最好的答案:

https://stackoverflow.com/a/11339012/492015

上面链接中的答案如下:

function getFormData($form){
    var unindexed_array = $form.serializeArray();
    var indexed_array = {};
    $.map(unindexed_array, function(n, i){
        indexed_array[n['name']] = n['value'];
    });
    return indexed_array;
}

使用方法:

var $form = $("#form_data");
var data = getFormData($form);

然而,根据https://jsonlint.com,这产生了无效的JSON,而且Spring Boot也不接受它作为有效的JSON,因为在commentcountry周围没有双引号。

{comment: "This is a comment", country: "us"}

是否有一种简单的方法将表单数据转换为有效的JSON?我正在尝试生成以下JSON格式:

{"comment": "This is a comment", "country": "us"}

0
0 Comments

从上述内容中,我们可以得出以下结论:

问题的原因:在使用Ajax发送数据时,需要将数据从表单格式转换为JSON格式。这是因为Ajax通常使用JSON来传输数据,而不是普通的表单格式。

解决方法:使用JavaScript中的JSON.stringify()函数将表单数据转换为JSON格式。使用此函数可以将JavaScript对象转换为JSON字符串。

下面是解决问题的示例代码:

// 定义一个JavaScript对象
let jsObject = {comment: "This is a comment", country: "us"};
// 使用JSON.stringify()将JavaScript对象转换为JSON字符串
let jsonData = JSON.stringify(jsObject);
// 现在,jsonData就是转换后的JSON数据,可以使用Ajax发送

通过使用JSON.stringify()函数,我们可以将JavaScript对象转换为JSON字符串,以便在使用Ajax发送数据时使用。这样可以确保数据以JSON格式传输,以便服务器端能够正确解析和处理数据。

0