androidstudio--gsonformat--超爽的数据解析方式

来源:互联网 发布:网络布线是做什么的 编辑:程序博客网 时间:2024/06/12 18:37

很久以前写json解析用原始的解析json的方法,后来为了加快开发进度,开始使用gson,fastjson等第三方jar包来进行json解析,为了保持apk足够小,不因为引入jar包导致apk文件过大,选择使用gson来加速json解析,当然,去年androidstudio 1.0版本出来,很多人开始使用androidstudio,当然studio有很多方便开发的插件加速应用的开发,减少开发者的劳动力。

 
今天推荐个工具就是:gsonformat
 
下载地址:
https://github.com/zzz40500/GsonFormat 
 
用过后表示,怎么这么酸爽的呢,哈哈
安装流程:
Setting-->plugins-->
 
使用:
自定义个javaBean(无任何内容,就一个空的类)
首先复制你要解析的json
然后alt+insert弹出如下界面
 
粘贴到如下界面:
 
 
点击ok,自动生成对应javaBean的语句:
然后就是根据json来进行json to bean的转换了
提供两工具类:
  1. 复制代码
     1 import java.util.List; 2 /** 3  * TODO: json工具类 4  *  5  * @author soyoungboy 6  * @date 2014-11-8 下午2:32:24 7  */ 8 public abstract class Json { 9     private static Json json;10     Json() {11     }12     public static Json get() {13         if (json == null) {14             json = new GsonImpl();15         }16         return json;17     }18     public abstract String toJson(Object src);19     public abstract <T> T toObject(String json, Class<T> claxx);20     public abstract <T> T toObject(byte[] bytes, Class<T> claxx);21     public abstract <T> List<T> toList(String json, Class<T> claxx);22 }
    复制代码
    复制代码
     1 public class GsonImpl extends Json { 2     private Gson gson = new Gson(); 3     @Override 4     public String toJson(Object src) { 5         return gson.toJson(src); 6     } 7     @Override 8     public <T> T toObject(String json, Class<T> claxx) { 9         return gson.fromJson(json, claxx);10     }11     @Override12     public <T> T toObject(byte[] bytes, Class<T> claxx) {13         return gson.fromJson(new String(bytes), claxx);14     }15     @Override16     public <T> List<T> toList(String json, Class<T> claxx) {17           Type type = new TypeToken<ArrayList<T>>() {}.getType();  18              List<T> list = gson.fromJson(json, type);  19         return list;20     }21 }
    复制代码

     

 
然后就是一句话,完美解析json了:
  1.  1 JavaBean bean =GsonImpl.get().toObject(json,JavaBean.class); 
完美解析json就是这么简单,就是这么酸爽。
 
解析json的工具类来自lite君的github的轮子代码。
https://github.com/litesuits/android-lite-http/tree/master/library/src/com/litesuits/http/data
0 0