Android之Gson操作

来源:互联网 发布:汽车出租管理实验 java 编辑:程序博客网 时间:2024/05/16 18:10

Gson,是谷歌推出的对JSON数据操作的一个jar文件,因为Android开发的火爆,所以Gson也成为了Android开发者必备法宝

本人也需要跟上潮流,对Entity类与JSON数据间的相互转换做了封装

看代码:

/** * Convert Json Data to Entity * @param jsonJSON类型字符串 * @param cls实体类Class对象 * @return实体类对象 */public static <T> T convertToEntity(String json, Class<T> cls) {if (StringUtils.isEmpty(json)) {return null;}return gson.fromJson(json, cls);}

将JSON数据转换成实体类对象,简单的一行代码,简洁,方便

/** * Convert Json Data to Entity List * @param jsonJSON类型数据 * @param cls实体类Class对象 * @return实体类集合 */public static <T> List<T> convertToEntityList(String json, Class<T> cls) {if (StringUtils.isEmpty(json)) {return null;}Reader read = new StringReader(json);JsonReader reader = new JsonReader(read);List<T> list = new ArrayList<T>();try {reader.beginArray();while (reader.hasNext()) {T t = gson.fromJson(reader, cls);if (t != null) {list.add(t);}}reader.endArray();} catch (IOException e) {e.printStackTrace();} finally {freeResource(reader);IOUtils.freeResource(read, null);}return list;}

将JSON数据转换成实体类List集合,也很简单

/** * Convert Object Data to Json * @param objObject对象 * @returnJSON数据 */public static String convertToJson(Object obj) {if (obj == null) {return null;}return gson.toJson(obj);}

将Object对象转换成JSON数据,为什么这里不用泛型类?因为Object既可以是List集合对象,也可以是Entity类对象,使用Object,少写一个封装方法

/** * 释放资源 * @param readerJsonRead对象 */private static void freeResource(JsonReader reader) {try {if (reader != null) {reader.close();}} catch (IOException e) {e.printStackTrace();}}

如果想要用以上方法,灵活处理、运行,可以稍微借鉴下Struts1的思想