最近在做手机的服务器端接口,对方要求返回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,就不多说了。