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

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

Android 使用FastJson解析json数据的手把手分析_第1张图片
shot_1.png
Android 使用FastJson解析json数据的手把手分析_第2张图片
shot_area.png
Android 使用FastJson解析json数据的手把手分析_第3张图片
shot_net.png
Android 使用FastJson解析json数据的手把手分析_第4张图片
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 parseObject(String text, Class clazz) {
        return parseObject(text, clazz, new Feature[0]);
    }

参数第一个是json的字符串;第二个是对应Bean的类

(2): 解析为List

public static final  List parseArray(String text, Class 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

如果只要json数据中对应的Area对应的集合数据;

JSONObject strObj = new JSONObject(response);
JSONObject obj = strObj.optJSONObject("obj");
String area_str = obj.optString("area");
List list = JSON.parseArray(area_str, AreaBean.class);

到这里就结束了,更多fastjson的用法,大家自己研究研究,很好用!

你可能感兴趣的:(Android 使用FastJson解析json数据的手把手分析)