Android之Gson操作
16lz
2021-01-23
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的思想
更多相关文章
- android数据升级方案
- Android Webservices 返回多行多列数据(Dataset)
- Android 如何导入已有的外部数据库
- Android性能优化-数据优化
- Android通过http协议数据交互的两种方式
- Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、
- Android 通过Post方式提交数据
- Android 手机运营商及网络类型判断
- android将对象写入文件和从文件中读取对象数据