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