2017-07-24 24 views
0

我想從我的表單中獲取數據,然後將它發送到一個servlet。但後來我注意到,序列化表單後得到的json對象不是有效的json對象。我可能做錯了什麼?這是我到目前爲止所嘗試的。使用Jquery將序列化表單數據轉換爲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" 
} 
+1

JSON.stringify({RES:OBJ})嘗試 – Doomenik

+0

VAR NEW_DATA = JSON.stringify(數據); – Aniket

+0

[使用jQuery將表單數據轉換爲JavaScript對象]可能的重複(https://stackoverflow.com/questions/1184624/convert-form-data-to-javascript-object-with-jquery) – Kirill

回答

0

沒有什麼錯,你得到了JSON。

只是字符串化它來獲取所需的對象

var myJSON1 = JSON.stringify(data); 

這將工作

0

你可以試試它

JSON.stringify(json_data); 
0

正如其他人所指出的那樣,你將原料JavaScript對象。 您必須做的是在通過電線發送之前轉換此對象。

JSON.stringify(json_data); 
0

而是這個foreach循環的只使用serializeArray(),然後json_parse()這兩個函數會爲你工作。

var data = $("#register").serializeArray(); 
var obj= JSON_parse(JSON_stringify(data)); 
0

請使用JSON.stringify(obj, undefined, 2);