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的思想
- Android之Gson操作
- Android之gson操作系列1
- Android之gson操作系列2之tojson
- Android之gson操作系列3之fromjson
- Android网络编程之操作JSON对象库-Gson
- android之gson解析
- Android 之 Gson 解析
- Android:JSON 之GSON 解析
- android之GSON解析JSON
- Android JSON之GSON解析
- Android Json处理之Gson
- Android框架之Gson解析
- Gson操作
- Gson 操作
- android之Gson解析json的封装
- Android工具类之Gson封装类
- android开发之 Gson 解析json数组
- Android解析Json数据之Gson解析
- 数据库审计产品购买指南
- 代码分析_逆向_各种数据类型的长度
- 【§极品网游之我叫mt online电脑版免费中文版§】
- C#文件操作
- AngularJS 中文资料+工具+库+Demo 大搜集
- Android之Gson操作
- C#进制转换
- WPF图形变换
- CentOS linux 下rabbitmq基于单机的集群配置
- Ubuntu下安装WPS
- python 的log功能
- 归并排序
- Ubuntu下Eclipse安装SVN插件(Subversion & Subclipse)
- Math.Round是四舍五入还是五舍六入