Json解析之FastJson
来源:互联网 发布:贵金属交易mt4软件 编辑:程序博客网 时间:2024/04/25 18:08
1、FastJson介绍
FastJson是阿里巴巴提供的一个Json处理工具包,具有极快的性能,超越任其他的Java Json parser。使用起来非常方便。2、例程
首先下载fastjson-1.1.27-android.jar包并导入工程中:DataBean.java:
package com.heqiang.testactivity;public class DataBean{ private String name; private String url; private String summary; private long id; public DataBean() { } public DataBean(long id, String name, String url, String summary) { this.id = id; this.name = name; this.url = url; this.summary = summary; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getSummary() { return summary; } public void setSummary(String summary) {this.summary = summary; }public long getId() {return id;}public void setId(long id) {this.id = id;}}
ResponseBean.java:
package com.heqiang.testactivity;public class ResponseBean {private int code;private String message;private Value value;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Value getValue() {return value;}public void setValue(Value value) {this.value = value;}public static class Value {private String data;private boolean flag;public Value() {}public Value(String data, boolean flag) {this.data = data;this.setFlag(flag);} public String getData() {return data;}public void setData(String data) {this.data = data;}public boolean isFlag() {return flag;}public void setFlag(boolean flag) {this.flag = flag;}}}
解析函数:
private void testFastJson(){String data = "{\"code\":200,\"message\":\"\",\"value\":{\"flag\":true,\"data\":[{\"url\":\"http://www.baidu.com\",\"id\":1,\"name\":\"百度\",\"summary\":\"搜索引擎\"},{\"url\":\"http://www.sina.com\",\"id\":2,\"name\":\"新浪\",\"summary\":\"门户网站\"},{\"url\":\"http://www.qq.com\",\"id\":3,\"name\":\"腾讯\",\"summary\":\"社交网络\"},{\"url\":\"http://www.taobao.com\",\"id\":4,\"name\":\"淘宝\",\"summary\":\"购物网站\"}]}}";ResponseBean reponse = JSON.parseObject(data, ResponseBean.class);if(reponse != null && reponse.getCode() == 200 && reponse.getValue() != null && reponse.getValue().getData() != null){List<DataBean> list = JSON.parseArray(reponse.getValue().getData(), DataBean.class);for (DataBean dataBean : list) {Log.d("Test", "name = "+dataBean.getName()+", url = "+dataBean.getUrl()+", id = "+dataBean.getId()+", summary = "+dataBean.getSummary());}}}
程序运行后打印如下:
name = 百度, url = http://www.baidu.com, id = 1, summary = 搜索引擎name = 新浪, url = http://www.sina.com, id = 2, summary = 门户网站name = 腾讯, url = http://www.qq.com, id = 3, summary = 社交网络name = 淘宝, url = http://www.taobao.com, id = 4, summary = 购物网站
3、Bean的命名规则
Bean中对应的set必须和Json中的字段对应,比如Json中有id字段,get方法名应该为setId,必须是set+字段名,字段名忽略大小写,如果字段是类似的is_default,那么set方法名应为setIs_default,下划线不能省略
4、注意事项
有一次在项目中用的时候遇到一个小插曲,不管怎么样解析出来的ResponseBean都没有数据,后来才发现是默认做了代码混淆的缘故,在proguard.flags设置对该类不做代码混淆就可以了。
5、Java对象转Json
FastJson可以很方便的把Java的一些实例转化为Json字符串:
HashMap<String, String> map = new HashMap<String, String>();map.put("key1", "test1");map.put("key2", "test2");String json = JSON.toJSONString(map);
0 0
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- Json解析之FastJson
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- 解析json 之fastjson
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- WebLogic10安装图文教程
- OCP 1Z0 053 128
- AVS+发展热点问题权威解读 纯干货
- 最长重复子串—后缀数组
- java中for语句 if 和 switch 是条件判断语句小析
- Json解析之FastJson
- Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
- HDU 2068 RPG的错排
- 使用ADRCI (ADR Command Interpreter) 工具查看Oracle alert警告日志
- fcntl()函数
- --java多线程和单例模式--java学习日记3(基础知识)
- android学习摘记——自定义Adapter的心得
- 二---流程控制
- Ffmpeg 处理视频命令