package cn.demo; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.gson.JsonArray; import com.google.gson.JsonObject; /** * * @author wanzhongqiang * 创建一个类继承HttpServlet类 * 创建一个Servlet类的名称为Test继承HttpServlet类同时覆写doGet方法和doPost方法。 * */ public class Test extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { setResponseAccess(response); // 设置响应内容类型 // 设置响应内容类型 response.setContentType("text/json; charset=utf-8"); PrintWriter out = response.getWriter(); //创建一个json对象,相当于一个容器,当然这个容器还可以套在另外一个容器里面,这个看业务需要 JsonObject jsonContainer =new JsonObject(); //为当前的json对象添加键值对 jsonContainer.addProperty("count", 5); jsonContainer.addProperty("status", 1); //构建json数组,数组里面也是json JsonArray arrayPlayer = new JsonArray(); //构建json数组中的对象 JsonObject player1 = new JsonObject(); player1.addProperty("addr", "湖南省长沙市雨花区中意一路与湘府路交汇处"); player1.addProperty("name", "湖南 长沙市 德思勤四季汇店"); player1.addProperty("tel", "0731-88990501"); JsonObject player2 = new JsonObject(); player2.addProperty("addr", "浙江省杭州市临安区锦北街道农林大路99号"); player2.addProperty("name", "浙江 杭州市 临安宝龙店"); player2.addProperty("tel", "0571-66558052"); JsonObject player3 = new JsonObject(); player3.addProperty("addr", "广东省深圳市光明区松白路与长春路交汇处"); player3.addProperty("name", "广东 深圳市 光明天汇城购物中心店"); player3.addProperty("tel", "0755-22337379"); JsonObject player4 = new JsonObject(); player4.addProperty("addr", "上海市青浦区淀山湖大道899弄B区—B1-A万达茂广场"); player4.addProperty("name", "上海 青浦万达茂店"); player4.addProperty("tel", "021-88220228"); JsonObject player5 = new JsonObject(); player5.addProperty("addr", "广东省广州市增城区新塘镇章陂工业大道万达广场"); player5.addProperty("name", "广东 广州市 新塘万达广场店"); player5.addProperty("tel", "020-88838779"); //将json对象添加到数组中 arrayPlayer.add(player1); arrayPlayer.add(player2); arrayPlayer.add(player3); arrayPlayer.add(player4); arrayPlayer.add(player5); //最后将json数组装到jsonContainer中 jsonContainer.add("shops", arrayPlayer); PrintWriter writer = response.getWriter(); System.out.println(jsonContainer); out.println(jsonContainer); } /** * @author wanzhongqiang */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } private void setResponseAccess(HttpServletResponse response) { // 允许该域发起跨域请求 response.setHeader("Access-Control-Allow-Origin", "*");//*允许任何域 // 允许的外域请求方式 response.setHeader("Access-Control-Allow-Methods", "POST, GET"); // 在999999秒内,不需要再发送预检验请求,可以缓存该结果 response.setHeader("Access-Control-Max-Age", "999999"); // 允许跨域请求包含某请求头,x-requested-with请求头为异步请求 response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); } }