2013-07-09 87 views
2

我知道這是一個簡單的。但找不到解決方案。如何在Spring控制器中獲取JSON數據?

我的jQuery的AJAX會,

var json = {"message":"Message123","time":"time123","name":"test123"} 

data : JSON.stringify(json), 

我的春天控制器會,

@RequestMapping(value = "chat.html", method=RequestMethod.GET) 
public @ResponseBody String getChat() { 

System.out.println("Entered in to the controller "); 

String name == ??? 
String msg == ??? 
String time == ??? 

//Process the functionality using the msg,name,time 

    return "Json String"; 
} 

我怎樣才能得到的名稱,消息,時間值。

希望我們的堆棧成員能幫助我。

+1

可能的[解析JSON在Spring MVC使用JSON傑克遜]重複(http://stackoverflow.com/questions/6019562/parsing-json-in代碼-spring-mvc-using-jackson-json) – mthmulders

+0

@mthmulders所以你在說'@ RequestBody'會解決我的問題。對吧? –

+0

我在說你的問題已經被問過了,並且已經被徹底回答了。實際上,使用'@ RequestBody'是答案的一部分。 – mthmulders

回答

3
var json = {"message":"Message123","time":"time123","name":"test123"} 
data : JSON.stringify(json) should have a key , 

data : {json:{"message":"Message123","time":"time123","name":"test123"}}, 
url:/json/test 

控制器

​​

我使用net.sf.json.JSONObject

0

您可以使用org.Json從這個link罐子...

那就試試這個代碼,我已經做了在我目前的項目中,並且正在高效地工作

var json = {"message":"Message123","time":"time123","name":"test123"} 
    $.ajax({ 
    type: "POST", 
    url: "/chat.html", 
    data: "jsonObject="+json, 
    success: function(response) { 
     // your success code 
    }, 
    error: function(e) { 
     // your error code 
    } 
}); 

在控制器改變這樣

@RequestMapping(value = "/chat.html", method=RequestMethod.POST) 
public @ResponseBody String getChat(HttpServletRequest req,HttpServletResponse res) { 
    JSONObject jsonObject = null; 
    try { 
     jsonObject = new JSONObject(req.getParameter("jsonObject")); 
    } catch(JSONException _instance) { 
     // Exception Handle Message 
    } 

    System.out.println("Entered in to the controller "); 
    String name ="" , msg = "", time = ""; 
    if(jsonObject.has("name")) { 
     name = jsonObject.getString("name"); 
    } 

    ... // Do it for other variables also 

    //Process the functionality using the msg,name,time 

    return "Json String"; 
} 
相關問題