版权声明:转载请注明出处 https://blog.csdn.net/heqiangflytosky/article/details/37659943

1、FastJson介绍

FastJson是阿里巴巴提供的一个Json处理工具包,具有极快的性能,超越任其它的Java Json parser。使用起来非常方便。

2、例程

首先下载fastjson-1.1.27-android.jar包并导入project中:

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);

Json解析之FastJson的更多相关文章

  1. Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]

    Android总结之json解析(FastJson Gson 对比)[申明:来源于网络] 地址:http://blog.csdn.net/u014031072/article/details/5392 ...

  2. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  3. 来自阿里的 json 解析方案 fastjson

    说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快 ...

  4. 75、JSON 解析库---FastJson, Gson

    JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交 ...

  5. Java的Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...

  6. Android 中的Json解析工具fastjson 、序列化、反序列化

    Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...

  7. 阿里的Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser ...

  8. Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...

  9. JSON解析工具——fastjson的简单使用

    从官方文档入手: 常见问题与快速上手:https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 各种使 ...

随机推荐

  1. leetcde-27-移除元素

    问题: package com.example.demo; public class Test27 { /** * 定义一个尾指针,该位置放置和val不同的元素, * 遍历数组,将不同的元素全部放置到 ...

  2. Mac 电脑如何卸载 重装node

    由于在日常开发中,部分node版本不支持,因此,我们需要对已安装的node进行卸载重装,步骤如下: 一.在终端依次输入以下命令   sudo npm uninstall npm -g   sudo r ...

  3. React 全新的 Context API

    Context API 可以说是 React 中最有趣的一个特性了.一方面很多流行的框架(例如react-redux.mobx-react.react-router等)都在使用它:另一方面官方文档中却 ...

  4. Java时区切换时的需要注意

    前言 Java中的时间操作,也许大家都很熟悉,Date.Calendar.SimpleDateFormat等.但或许我们都只是会调用常见接口方法.今天解决的bug,关于TimeZone,即时区. 经常 ...

  5. windows服务器装macos虚拟机(vmware)系统

    VMware14安装黑苹果macOS10.13流程 一.准备工具 VMware Workstation 14.1.2 Pro macOS High Sierra 10.13.iso格式或.cdr格式( ...

  6. ArrayListMultimap

    遇到这样一个场景,就是要判断传过来的Lists里有几组相邻的元素,然后有多少个单一的元素,比如3,3,3,4,4,4,5,5,5,6,6,6,8,9,10,11 方法有很多,但是我选了ArrayLis ...

  7. 扩展阿里巴巴Java开发规约插件(转)

    转自:https://blog.csdn.net/u014513883/article/details/79186893 1.前言 工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码.如 ...

  8. Quartz -----定时任务框架

    一.什么是Quartz     由java开发用来执行定时任务,类似于java.util.Timer.   但是相较于Timer,quartz增加了很多功能:                  持久性 ...

  9. c++ vector push_back对象的时候存起来的是拷贝[转]

    比如 class C1; vector<C1> vec; C1* p=new C1; vec v1; v1.push_back(&(*p)); delete p; 这里,传进函数的 ...

  10. boost库:函数对象

    函数对象是指那些可以被传入到其它函数或是从其它函数返回的一类函数. 1. boost::bind bind提供了一个机制,是函数与几乎不限数量的参数一起使用,就可以得到指定签名的函数.bind会复制传 ...