2017-02-10 61 views
0

我是新來的彈簧和ajax 我有一個json對象在我的java腳本是動態創建的 我需要發送這個json對象從java腳本使用ajax或正常提交( )從Java腳本傳遞Json對象到java

如果它是一個字符串,我們有隱藏的輸入。

就我所知,如果我沒看錯的 我們不能將它存儲在隱藏

我必須接受使用Java代碼JSON對象。 這是我的腳本

$(document).ready(function(){ 
    // click on button submit 
    $("#save_btn").on('click', function(){ 
     alert(); 
     // send ajax 
     $.ajax({ 
      url: 'project_reg_save', // url where to submit the request 
      type : "POST", // type of action POST || GET 
      dataType : 'json', // data type 
      data : $("#reg_form").serialize(), // post data || get data 

      success : function(result) { 
       // you can see the result from the console 
       // tab of the developer tools 
       console.log(result); 
      }, 
      error: function(xhr, resp, text) { 
       console.log(xhr, resp, text); 
      } 
     }) 
    }); 
}); 

,這是我的Java代碼

@Controller 
public class Save { 
    @RequestMapping("/project_reg_save") 

    public ModelAndView mymethod(@RequestParam JSONObject obj)//which is not possible { 

     System.out.println(obj); 

     return new ModelAndView("Product_reg", "msg", "product Registration"); 
    } 
} 
+0

也許嘗試把它當作一個字符串,然後使用Java序列化呢? –

+0

它不是請求參數,它是請求主體。嘗試將標註更改爲'@ RequestBody',並在'@ RequestMapping'中添加'consumes = {MediaType.APPLICATION_JSON_VALUE}' –

回答

0

一種解決方案是

  1. 改變你的數據類型: 'JSON' 以數據類型: '文本'
  2. @RequestParam JSONObject obj to @RequestParam String obj
  3. JsonObject JsonObj = new JsonParser()。parse(obj).getAsJsonObject();

因此你得到JSON對象