1、fastjson的下载
1)maven中央仓库: http://central.maven.org/maven2/com/alibaba/fastjson/
2)Sourceforge.net : https://sourceforge.net/projects/fastjson/files/
2、Maven配置fastjson依赖(pom.xml)
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version> 1.2.54</version> </dependency>
android版本
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.68.android</version>
</dependency>
3、fastjson常用的API
fastjson入口类是com.alibaba.fastjson.JSON,常用的API是JSON.toJSONString,和parseObject。
package com.alibaba.fastjson; publicabstractclassJSON { publicstaticfinal String toJSONString(Object object); publicstaticfinal<T> T parseObject(String text, Class<T>clazz, Feature... features); }
1)序列化
String jsonString =JSON.toJSONString(obj);
2)反序列化
VO vo =JSON.parseObject("...", VO.class);
3)泛型反序列化
import com.alibaba.fastjson.TypeReference;
List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});
4、fastjson处理日期
1)fastjson处理日期的API很简单,例如:
JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")
2)使用ISO-8601日期格式
JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);
3)全局修改日期格式
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd"; JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);
反序列化能够自动识别如下日期格式:
- ISO-8601日期格式
- yyyy-MM-dd
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd HH:mm:ss.SSS
- 毫秒数字
- 毫秒数字字符串
- .NET JSON日期格式
- new Date(198293238)
5、fastjson使用实例
fastjson的使用实例:https://github.com/alibaba/fastjson/wiki/Samples-DataBind
6、fastjson性能与gson对比
fastjson比gson快大约6倍,测试结果:https://github.com/eishay/jvm-serializers/wiki/Staging-Results
7、fastjson专门or android版本
fastjson有专门的for android版本,去掉不常用的功能。jar占的字节数更小。git branch地址是:https://github.com/alibaba/fastjson/tree/android
8、fastjson 如何处理超大对象和超大JSON文本
fastjson提供了Stream API,详细请看: https://github.com/alibaba/fastjson/wiki/Stream-api