Android 使用FastJson解析json数据的手把手分析
2016-09-07 本文已影响1850人
666swb
1: 需要解析的json数据
如下图如示,很简单的json数据,area,net,zyCompany中是数据的list(由于很长,不好全部列出,不过可以看下面的截图)
shot_1.png shot_area.png shot_net.png shot_zycompay.png3:FastJson 简单介绍
fastjson是一个性能极好的用java语言实现的JSON 解析器和生成器,来自阿里巴巴的员工。
特点:
快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson); 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum); 零依赖(没有依赖其它任何类库除了JDK)
官方地址:
4: Fastjson常用方法介绍
(1): 解析为Bean
public static final <T> T parseObject(String text, Class<T> clazz) {
return parseObject(text, clazz, new Feature[0]);
}
参数第一个是json的字符串;第二个是对应Bean的类
(2): 解析为List<Bean>
public static final <T> List<T> parseArray(String text, Class<T> clazz) {...}
**5: 下面开始实践吧 **
有人说这么长的json,写对应的bean也很烦哦,不要担心,studio提供了插件GsonFormat, 可以一件生成响应的Bean(点击链接学习一下吧!)
(1): 解析为BaseALLData类的代码
BaseALLData data = JSON.parseObject(response, BaseALLData.class);
BaseALLData.ObjBean objBean = data.getObj();
mAreaList = objBean.getArea();
mNetList = objBean.getNet();
mZyCompanyList = objBean.getZyCompany();
可以看到上面调用了JSON.parseObject()的方法,生成了BaseAllData的类,然后顺利的获取了area的list,net的list,zycompany的list等
(2): 解析为list<bean>
如果只要json数据中对应的Area对应的集合数据;
JSONObject strObj = new JSONObject(response);
JSONObject obj = strObj.optJSONObject("obj");
String area_str = obj.optString("area");
List<AreaBean> list = JSON.parseArray(area_str, AreaBean.class);
到这里就结束了,更多fastjson的用法,大家自己研究研究,很好用!