gson数据格式转化为对象或者集合等
2015-11-18 14:30
381 查看
记得去年第一次做android开发时,后台传过来的数据格式都是JSON,那时苦死小编了,大量的方法里写了JSON转化为对象或者集合这些重复的代码,当时也想把这些给拿出来进行封装,说来惭愧由于对JAVA的泛型不熟,导致一直没封装出满意的,一直到今天重新阅读了泛型相关的知识,才把JSON 对象 集合 MAP等之间转换,开发时需要导入gson.jar架包,下面的类供大家参考:
GsonUtil.java
GsonUtil.java
import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; public class GsonUtil { private static Gson gson = null; //没加载的话加载一次 static { if (gson == null) { gson = new Gson(); } } private GsonUtil() { } /** *对象 转话成json * * @param object * @return */ public static String GsonToString(Object object) { String gsonString = null; if (gson != null) { gsonString = gson.toJson(object); } return gsonString; } /** * JSON转成对象 * * @param gsonString * @param cls * @return */ public static <T> T GsonToObject(String gsonStr, Class<T> cls) { T t = null; if (gson != null) { t = gson.fromJson(gsonStr, cls); } return t; } /** * JSON转成list集合 * * @param gsonString * @param cls * @return */ public static <T> List<T> GsonToList(String gsonStr, Class<T> cls) { List<T> list = null; if (gson != null) { list = gson.fromJson(gsonStr, new TypeToken<List<T>>() { }.getType()); } return list; } /** * json转成map的 * * @param gsonString * @return */ public static <T> Map<String, T> GsonToMap(String gsonStr) { Map<String, T> map = null; if (gson != null) { map = gson.fromJson(gsonStr, new TypeToken<Map<String, T>>() { }.getType()); } return map; } /** * JSON转成含有map的list集合 * * @param gsonString * @return */ public static <T> List<Map<String, T>> GsonToListMap(String gsonStr) { List<Map<String, T>> list = null; if (gson != null) { list = gson.fromJson(gsonStr, new TypeToken<List<Map<String, T>>>() { }.getType()); } return list; } }
相关文章推荐
- 关于RSA非对称加密的一点心得
- monkey命令
- 微软算法100道题-----特殊题
- 文章标题
- Windows平台下安装Hadoop
- 在Android中实现Hook机制的实验
- python数据类型详解
- ucGUI移植到msp430f149时底层驱动代码
- s5pc100开发板Nand flash移植
- yii2 打印sql语句
- centos5安装supervisor 3.1.3
- javascript下拉列表菜单的实现方法
- 从零学Android(十)、Fragment基础知识
- unity3d shader中RenderType的所有类型
- left join on and 与 left join on where的区别
- java向数据库中插入数据,数据库乱码问题解决
- ScheduledExecutorService定时周期执行指定的任务
- IOS6和IOS7的适配问题
- c3p0连接池,当数据源不可用时 自动跳过
- Android疯狂讲义学习笔记——XML布局和java代码共同控制用户界面组件