Fastjson教程
入门配置

Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

Fastjson的主要优点是速度快,使用简单,在国内使用比较广泛。

配置

使用Fastjson,只需要引入一个包。

Maven配置

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.73</version>
</dependency>

为Android定制的版本,去掉了不常用的功能,包更小:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.1.72.android</version>
</dependency>

Gradle配置

compile 'com.alibaba:fastjson:1.2.73'

Android版本:

compile 'com.alibaba:fastjson:1.1.72.android'

基本API及用法

在使用Fastjson时,其入口类为com.alibaba.fastjson.JSON。

JSON类中最常用的是toJSONString(Object object)和parseObject(String json, Class<T> clazz, Feature... features)两个方法。

通过一个简单的例子,来快速的了解一下Fastjson的基本用法:

 Model model = new Model(); // 创建一个简单的Java对象,给字段设置一些值
 String json = JSON.toJSONString(model); // 将model对象序列化为JSON字符串
 Model model2 = JSON.parseObject(json, Model.class); // 将json字符串反序列化为Model对象

是的,就是这么简单,日常大多数序列化操作只需要使用这两个方法。

如果要反序列化的目标类,为带有泛型参数的类型(例如List<Model>),那么Fastjson提供了TypeReference类来支持:

String json = "...";
List<Model> list = JSON.parseObject(json, new TypeReference<List<Model>>() {});

之所以要这么写,是因为Java不支持List<Model>.class这种写法。而如果写成List.class,又识别不了元素的类型为Model,从而无法正确的反序列化。

好的,Fastjson入门篇就先讲这么多了。

参考

https://github.com/alibaba/fastjson (opens in a new tab)