| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
peke
10年前发布

处理Json工具类GsonKit

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;      }  }