package com.patest.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
/**
* Json 工具包 * @author wwhhff11
*
* @since 2016/03/10
*/
public class JsonUtil {
/**
* 向客户端写入json数据流
*
* @param response
* @param obj
* @author wwhhff11
* @since 2016/03/10
*/
public static void sendJson(HttpServletResponse response, Object obj) {
if (obj == null) {
return;
}
Gson gson = new GsonBuilder().serializeNulls().create();
String json = null;
if (obj instanceof String)
json = (String) obj;
else
json = gson.toJson(obj);
PrintWriter out = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("cache-control", "no-cache");
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.write(json);
out.flush();
out.close();
}
/**
* 将json字符串转换为object
*
* @param json
* @param clazz
* @author wwhhff11
* @since 2016/03/10
* @return
*/
public static <T> T parseObject(String json, Class<T> clazz) {
T t = null;
try {
Gson gson = new GsonBuilder().serializeNulls().create();
t = gson.fromJson(json, clazz);
} catch (Exception e) {
return null;
}
return t;
}
/**
* 将json字符串转换为List
*
* @param json
* @param type
* @author wwhhff11
* @since 2016/03/10
* @return
*/
public static <T> List<T> parseList(String json, Class<T[]> clazz) {
T[] arr = new Gson().fromJson(json,clazz);
return Arrays.asList(arr);
}
/**
* 将json字符串转换为Map
*
* @param json
* @param clazz
* @author wwhhff11
* @since 2016/03/10
* @return
*/
public static Map<String, Object> parseMap(String json) {
Map<String, Object> ans = null;
try {
Gson gson = new GsonBuilder().serializeNulls().create();
ans = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
} catch (Exception e) {
return null;
}
return ans;
}
/**
* 将Object转为Json
*
* @param json
* @param clazz
* @author wwhhff11
* @since 2016/03/10
* @return
*/
public static String getJson(Object obj){
Gson gson = new GsonBuilder().serializeNulls().create();
String json = gson.toJson(obj);
return json;
}
/**
* 对类型进行组装
* @author wwhhf
* @since 2016/03/10
* @return
*/
public static <T> Type getListType(Class<T> clazz){
return new TypeToken<ArrayList<T>>() {
}.getType();
}
}
Gson 封装
最新推荐文章于 2021-06-26 15:45:56 发布