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如附件: