日期:2014-05-16  浏览次数:20356 次

struts返回json数据格式

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