我正在尝试从我的表单中获取数据,然后将其发送到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 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>
我从表单中获取的json对象是 -
{
apiname: "jdjdj",
apiendpoint: "sdjsdj",
apiversion: "djdjd",
source: "internet"
}
这就是我想要的 -
{
"apiname": "jdjdj",
"apiendpoint": "sdjsdj",
"apiversion": "djdjd",
"source": "internet"
}
答案 0 :(得分:0)
你得到的json没有错。
只需将其字符串化即可获得所需的对象
var myJSON1 = JSON.stringify(data);
这将起作用
答案 1 :(得分:0)
你可以尝试一下
JSON.stringify(json_data);
答案 2 :(得分:0)
正如其他人所说,你传递一个原始的javascript对象。 您必须做的是在通过网络发送之前转换此对象。
package.json
答案 3 :(得分:0)
而不是这个foreach循环只使用serializeArray()然后json_parse()这两个函数将适合你。
var data = $("#register").serializeArray();
var obj= JSON_parse(JSON_stringify(data));
答案 4 :(得分:0)
请使用JSON.stringify(obj, undefined, 2);