Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery将序列化表单数据转换为json对象?_Javascript_Jquery_Json - Fatal编程技术网

Javascript 使用Jquery将序列化表单数据转换为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

我试图从表单中获取数据,然后将其发送到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>
这就是我想要的-

{
    "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));