1、代码例子
package com.gamexun.support.util; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONException; import org.json.JSONObject; import com.alibaba.fastjson.JSON; public class JsonWriteUtil { private static Log log=LogFactory.getLog(JsonWriteUtil.class); /** * 直接打印字符串 */ public static void write(HttpServletResponse response, String str) { try { response.setContentType("text/html;charset=utf-8"); response.getWriter().write(str); response.getWriter().flush(); log.debug(str); } catch (IOException e) { e.printStackTrace(); } } /** * 把对象转换成JSON后,再进行打印 */ public static void writeJson(HttpServletResponse response, Object obj) { String str = JSON.toJSONString(obj); try { response.setContentType("text/html;charset=utf-8"); response.getWriter().write(str); response.getWriter().flush(); log.debug(str); } catch (IOException e) { e.printStackTrace(); } } /** * 将json格式数据转换为map * @param json json格式的数据 */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static Map<String,String> getMap(String json) throws JSONException{ JSONObject dataJson =new JSONObject(json); Map<String,String> mapResult = new HashMap(); Iterator iterator = dataJson.keys(); String key = null; String value = null; while (iterator.hasNext()) { key = (String) iterator.next(); value = dataJson.getString(key); mapResult.put(key, value); } return mapResult; } /** * 将map转换成json字符串 * @param str 需要解析的map的key * @param map map集合 * @return */ public static String getString(String str[],Map<String,String> map){ StringBuffer jsonStr = new StringBuffer("{"); int num = 0; for (int i = 0; i < str.length; i++) { String key = str[i]; if(num < str.length -1){ jsonStr = jsonStr.append("\"" +key + "\":\"" + map.get(key) + "\","); }else{ jsonStr = jsonStr.append("\"" +key + "\":\"" + map.get(key) + "\""); } } jsonStr.append("}"); return jsonStr.toString(); } }
构造json数据:
/** * 返回结果,说明给那个服务器的用户发奖 * @param ret 状态 * @param msg 说明 * @param zoneid 发货服务器 */ public String getMsg(int ret,String msg,String zoneid) { JSONObject obj = new JSONObject(); obj.put("ret", ret); obj.put("msg", msg); obj.put("zoneid", zoneid); log.info("任务集市回调返回结果 obj="+obj.toJSONString()); return obj.toJSONString(); }
需要用到的jar如附件: