TECH_ANDROID

Android 使用FastJson解析json数据的手把手分析

2016-09-07  本文已影响1850人  666swb

1: 需要解析的json数据

如下图如示,很简单的json数据,area,net,zyCompany中是数据的list(由于很长,不好全部列出,不过可以看下面的截图)

http://pda.spring56.com/pda/api/getinterfaceData.do?style=json&func=A12&partner=test&datetime=20160907091844&content=eyJwZW9wX2NvZGUiOiLlrZnlsI/lvLoiLCJwYXNzd29yZCI6Ijk2ZTc5MjE4OTY1ZWI3MmM5MmE1NDlkZDVhMzMwMTEyIiwidmVyc2lvbiI6IjIwMTYwODMxIiwicGRhX2NvZGUiOiI5MFA2RTAwNTkwMDAifQ==&verify=1a0e875dbea3e0e35712b10efb8685df

shot_1.png shot_area.png shot_net.png shot_zycompay.png

3:FastJson 简单介绍

fastjson是一个性能极好的用java语言实现的JSON 解析器和生成器,来自阿里巴巴的员工。

特点:

快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson); 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum); 零依赖(没有依赖其它任何类库除了JDK)

官方地址:

https://github.com/alibaba/fastjson

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的用法,大家自己研究研究,很好用!

上一篇下一篇

猜你喜欢

热点阅读