Javascript 使用Jquery将序列化表单数据转换为json对象?
我试图从表单中获取数据,然后将其发送到servlet。但是我注意到序列化表单后得到的json对象不是有效的json对象。我可能做错了什么?这就是我到目前为止所尝试的Javascript 使用Jquery将序列化表单数据转换为json对象?,javascript,jquery,json,Javascript,Jquery,Json,我试图从表单中获取数据,然后将其发送到servlet。但是我注意到序列化表单后得到的json对象不是有效的json对象。我可能做错了什么?这就是我到目前为止所尝试的 <script type="text/javascript"> $(document).on("click", "#check", function() { // When HTML DOM "click" event is invoked on element with ID "somebutton", execute
<script type="text/javascript">
$(document).on("click", "#check", function() { // When HTML DOM "click" event is invoked on element with ID "somebutton", execute the following function...
event.preventDefault();
var data = $("#register").serialize().split("&");
var obj={};
for(var key in data)
{
console.log(data[key]);
obj[data[key].split("=")[0]] = data[key].split("=")[1];
}
console.log(obj);
// store json string
$.ajax({
type: "POST",
url: "HomeServlet",
dataType: "text",
contentType: "application/json",
data:{"res":obj},
success: function(data){
console.log(data);
},
error:function(){
console.log("error");
},
});
});
</script>
这就是我想要的-
{
"apiname": "jdjdj",
"apiendpoint": "sdjsdj",
"apiversion": "djdjd",
"source": "internet"
}
您得到的json没有问题 只需将其字符串化即可获得所需的对象
var myJSON1 = JSON.stringify(data);
这会起作用的,你可以试试
JSON.stringify(json_data);
正如其他人所指出的,您传递的是一个原始javascript对象。 您必须做的是在通过导线发送之前转换此对象
JSON.stringify(json_data);
与此foreach循环不同,只使用serializeArray()然后使用json_parse(),这两个函数适用于您
var data = $("#register").serializeArray();
var obj= JSON_parse(JSON_stringify(data));
请使用JSON.stringify(obj,未定义,2)代码>JSON.stringify({res:obj})尝试var new_data=JSON.stringify(data);可能的重复可能的重复可能的重复
var data = $("#register").serializeArray();
var obj= JSON_parse(JSON_stringify(data));