?????? 最近在做手机的服务器端接口,对方要求返回json的数据给他们,之前没弄过,最好请教别人加自己摸索,终于搞出来,现在写下来,给大家留作参考
????? struts.xml里配置action
????
<action name="viewCommodityInfo" class="commodityActions" method="commodityInfo" > <result name="success" type="json"> <param name="root">resultTree</param> </result> </action>
?action中的代码
1、返回list类型
//获取商品信息 public String viewCommodityList() throws IOException{ List<Commodity> list = commodityService.getAllCommodity(); Map mm = new HashMap(); mm.put("commodityList", list); JSONObject jo= new JSONObject(mm); result = jo.toString(); getResponse().setContentType("application/json; charset=UTF-8"); getResponse().setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存 PrintWriter out = getResponse().getWriter(); out.print(resultTree); out.flush(); out.close(); return null; }
?2、返回实体类
??
public String commodityInfo() throws JSONException, IOException{ String uid = (String)ServletActionContext.getRequest().getParameter("uid"); Commodity ccommodity =new Commodity(); ccommodity.setUid(uid); ccommodity.setWant(null); commodity = commodityService.getCommodity(ccommodity).get(0); Map mm = new HashMap(); JSONObject jo = new JSONObject(commodity); mm.put("commodity", jo); JSONObject jo2 = new JSONObject(mm); result = jo2.toString(); getResponse().setContentType("application/json; charset=UTF-8"); getResponse().setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存 PrintWriter out = getResponse().getWriter(); out.print(result); out.flush(); out.close(); return null; }
?3、返回单个字段
?
public String delCommodity() throws JSONException, IOException{// JSONObject demoJson = new JSONObject(jsonString); String picId = (String)ServletActionContext.getRequest().getParameter("picId"); String[] ids = picId.split(","); JSONObject jo = new JSONObject(); if(ids.length>0){ if(commodityService.batchdel(ids)>0){ jo.accumulate("success", "true"); }else{ jo.accumulate("success", "false"); } }else{ jo.accumulate("success", "false"); } resultTree = jo.toString(); getResponse().setContentType("application/json; charset=UTF-8"); getResponse().setHeader("Cache-Control", "no-cache"); // 取消浏览器缓存 PrintWriter out = getResponse().getWriter(); out.print(resultTree); out.flush(); out.close(); return null; }
?? 里面用到的jar,就不多说了。