package cn.emay.sdk.util.json;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import cn.emay.sdk.util.json.gson.Gson;
|
import cn.emay.sdk.util.json.gson.GsonBuilder;
|
import cn.emay.sdk.util.json.gson.reflect.TypeToken;
|
|
/**
|
* json util
|
*
|
* @author 东旭
|
*
|
*/
|
public class JsonHelper {
|
|
private static Map<String, Gson> gsons = new HashMap<String, Gson>();
|
|
private static String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
|
static {
|
gsons.put(DEFAULT_DATE_PATTERN, createGson(DEFAULT_DATE_PATTERN));
|
}
|
|
private static Gson createGson(String datePattern) {
|
return new GsonBuilder().setDateFormat(datePattern).disableHtmlEscaping().serializeNulls().create();
|
}
|
|
public static Gson getGson() {
|
return gsons.get(DEFAULT_DATE_PATTERN);
|
}
|
|
public static Gson getGson(String datePattern) {
|
Gson gson = gsons.get(datePattern);
|
if (gson == null) {
|
gson = createGson(datePattern);
|
gsons.put(datePattern, gson);
|
}
|
return gson;
|
}
|
|
public static GsonBuilder newGsonBuilder() {
|
return new GsonBuilder();
|
}
|
|
/**
|
* 将对象转换为json串
|
*
|
* @param obj
|
* @return
|
*/
|
public static String toJsonString(Object obj) {
|
if (obj == null) {
|
return null;
|
}
|
return getGson().toJson(obj);
|
}
|
|
/**
|
* 将对象转换为json串,自定义日期转换规则
|
*
|
* @param obj
|
* @param datePattern
|
* @return
|
*/
|
public static String toJsonString(Object obj, String datePattern) {
|
if (obj == null) {
|
return null;
|
}
|
return getGson(datePattern).toJson(obj);
|
}
|
|
/**
|
* 将json串转换为对象
|
*
|
* @param clazz
|
* @param jsonString
|
* @return
|
*/
|
public static <T> T fromJson(Class<T> clazz, String jsonString) {
|
if (jsonString == null) {
|
return null;
|
}
|
return getGson().fromJson(jsonString, clazz);
|
}
|
|
/**
|
* 将json串转换为对象
|
*
|
* @Type type
|
* @param jsonString
|
* @return
|
*/
|
public static <T> T fromJson(TypeToken<T> token, String jsonString) {
|
if (jsonString == null) {
|
return null;
|
}
|
return getGson().fromJson(jsonString, token.getType());
|
}
|
|
/**
|
* 将json串转换为对象
|
*
|
* @Type type
|
* @param jsonString
|
* @return
|
*/
|
public static <T> T fromJson(TypeToken<T> token, String jsonString, String datePattern) {
|
if (jsonString == null) {
|
return null;
|
}
|
return getGson(datePattern).fromJson(jsonString, token.getType());
|
}
|
|
/**
|
* 将json串转换为对象
|
*
|
* @param clazz
|
* @param jsonString
|
* @return
|
*/
|
public static <T> T fromJson(Class<T> clazz, String jsonString, String datePattern) {
|
if (jsonString == null) {
|
return null;
|
}
|
return getGson(datePattern).fromJson(jsonString, clazz);
|
}
|
|
}
|