GsonKit:使用Google的Gson库封装的工具类,专门负责解析Json数据。
使用Maven引入jar包:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.4</version> </dependency>
以下是代码细节:
public class GsonKit {
private static Gson gson = null;
static {
if (gson == null) {
gson = new Gson();
}
}
/**
* 将对象转换成json格式
* @param ts
* @return
*/
public static String objectToJson(Object ts) {
String jsonStr = null;
if (gson != null) {
jsonStr = gson.toJson(ts);
}
return jsonStr;
}
/**
* 将对象转换成json格式(并自定义日期格式)
*
* @param ts
* @return
*/
public static String objectToJson(Object ts, final String dateformat) {
String jsonStr = null;
gson = new GsonBuilder().registerTypeHierarchyAdapter(Date.class, new JsonSerializer<Date>() {
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) {
SimpleDateFormat format = new SimpleDateFormat(dateformat);
return new JsonPrimitive(format.format(src));
}
}).setDateFormat(dateformat).create();
if (gson != null) {
jsonStr = gson.toJson(ts);
}
return jsonStr;
}
/**
* 将json格式转换成list对象
* @param jsonStr
* @return
*/
public static List<?> jsonToList(String jsonStr) {
List<?> objList = null;
if (gson != null) {
java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<?>>() {}.getType();
objList = gson.fromJson(jsonStr, type);
}
return objList;
}
/**
* 将json格式转换成list对象,并准确指定类型
* @param jsonStr
* @param type
* @return
*/
public static List<?> jsonToList(String jsonStr, java.lang.reflect.Type type) {
List<?> objList = null;
if (gson != null) {
objList = gson.fromJson(jsonStr, type);
}
return objList;
}
/**
* 将json格式转换成map对象
* @param jsonStr
* @return
*/
public static Map<?, ?> jsonToMap(String jsonStr) {
Map<?, ?> objMap = null;
if (gson != null) {
java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<Map<?, ?>>() {}.getType();
objMap = gson.fromJson(jsonStr, type);
}
return objMap;
}
/**
* 将json转换成bean对象
* @param jsonStr
* @return
*/
public static Object jsonToBean(String jsonStr, Class<?> cl) {
Object obj = null;
if (gson != null) {
obj = gson.fromJson(jsonStr, cl);
}
return obj;
}
/**
* 将json转换成bean对象(并自定义日期格式)
* @param jsonStr
* @param cl
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T jsonToBean(String jsonStr, Class<T> cl, final String pattern) {
Object obj = null;
gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
SimpleDateFormat format = new SimpleDateFormat(pattern);
String dateStr = json.getAsString();
try {
return format.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}).setDateFormat(pattern).create();
if (gson != null) {
obj = gson.fromJson(jsonStr, cl);
}
return (T) obj;
}
/**
* 将json转换成bean对象(并自定义日期格式)
* @param jsonReader
* @param cl
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T jsonToBean(Reader jsonReader, Class<T> cl, final String pattern) {
Object obj = null;
gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
SimpleDateFormat format = new SimpleDateFormat(pattern);
String dateStr = json.getAsString();
try {
return format.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}).setDateFormat(pattern).create();
if (gson != null) {
obj = gson.fromJson(jsonReader, cl);
}
return (T) obj;
}
/**
* 根据key获得value值
* @param jsonStr
* @param key
* @return
*/
public static Object getJsonValue(String jsonStr, String key) {
Object rulsObj = null;
Map<?, ?> rulsMap = jsonToMap(jsonStr);
if (rulsMap != null && rulsMap.size() > 0) {
rulsObj = rulsMap.get(key);
}
return rulsObj;
}
}
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10482.html