发送 data/object 到 ajax

Sending data/object to ajax

在将对象转换为 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);
                });

写回 gson.toJson() returns 的字符串。此外,您可以在响应中设置适当的内容类型。

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

你也可以在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]);
 }
 }
 }
 );

在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);