在使用ajax发送之前,将表单数据转换为json格式。
在使用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,因为在comment
和country
周围没有双引号。
{comment: "This is a comment", country: "us"}
是否有一种简单的方法将表单数据转换为有效的JSON?我正在尝试生成以下JSON格式:
{"comment": "This is a comment", "country": "us"}
从上述内容中,我们可以得出以下结论:
问题的原因:在使用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格式传输,以便服务器端能够正确解析和处理数据。