将数据/对象发送到ajax

时间:2015-03-03 08:32:21

标签: java ajax json servlets gson

将对象转换为json后,如何将数据发送到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:

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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]);
 }
 }
 }
 );

答案 2 :(得分:1)

在ajax中使用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);