2015-03-03 98 views
-1

如何在将对象转换为json后将数据发送到ajax调用?将数据/对象发送到ajax

@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/plain"); 
    PrintWriter writer = response.getWriter(); 
    LinkedList list = new LinkedList(); 
    list.add("first"); 
    list.add("second"); 
    list.add("third"); 
    Gson gson = new Gson(); 
    gson.toJson(list); 
    writer.println("From servlet"); 
} 

阿贾克斯:

$.ajax({ 
        url : 'http://localhost:8081/Football/SendToAjax', 
        type : 'GET' 
       }) 
       .done(function(message) { 
        alert(message); 
       }). 
       fail(function(message) { 
        alert(message); 
       }); 
+0

您可以使用消息[0]和更多索引。正如我在回答中所提到的。 – Prashant 2015-03-03 08:54:44

回答

2

回写的字符串gson.toJson()返回。另外,您可以在回复中设置正确的内容类型。

String out = gson.toJson(list); 
    response.setContentType("application/json"); 
    writer.println(out); 
+0

我怎么能在jQuery结束? – 2015-03-03 08:46:44

+0

将dataType属性设置为json,并使用success()回调函数(而不是.done)直接作为js对象访问响应。成功:函数(responseTxt,status,jqxhr){//responseTxt.someProperty;} – ramp 2015-03-03 09:50:37

1

您还可以在JSONObject的编写如下

JSONObject json = new JSONObject(); 
json.put("list", list); 
writer = response.getWriter(); 
writer.println(json.toString()); 

然后你就可以在AJAX使用它在你的功能:在阿贾克斯

$.ajax({ 
type: 'GET', 
url: urlPath, 
dataType : "json", 
success: function(message){// message is returned message that was written in json 
// use data as message[0] 
    for(i = 0; i <message.length; i++){ 
     alert(message[i]); 
} 
} 
} 
); 
1

使用dataType:"json",

$.ajax({ 
url : 'http://localhost:8081/Football/SendToAjax', 
type : 'GET', 
dataType:"json" 
}) 
.done(function(message) { 
alert(message); 
}). 
fail(function(message) { 
alert(message); 
}); 

在servlet

JSONObject object = new JSONObject(); 

object.accumulate("list", list);