一.认识FastJson

1.优势

fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,第三方独立测试结果说明比gson快大约6倍,fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库。 FastJson速度最快,fastjson具有极快的性能,超越任其他的Java Json parser。
2.用途

FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。

Fastjson支持java bean的直接序列化。 可以使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。

3.jar包下载地址

fastJson jar

二.FastJsonAPI介绍

FastJson功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖。
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在

  • public static final String toJSONString(Object object);  
  •   
  • //把JSON文本parse为JavaBean(常用)  
  • public static final T parseObject(String text, Class clazz);  

 

2.其他函数

[java] view plain copy
1. // 把JSON文本parse成JSONObject  
2. public static final JSONObject parseObject(String text);  
3.   
4. // 把JSON文本parse成JSONArray  
5. public static final JSONArray parseArray(String text);  
6.   
7. //把JSON文本parse成JavaBean集合  
8. public static final List parseArray(String text, Class clazz);  
9.   
10. // 将JavaBean序列化为带格式的JSON文本  
11. public static final String toJSONString(Object object, boolean prettyFormat);  
12.    
13.   
14. // 把JSON文本parse为JSONObject或者JSONArray  
15. public static final Objectparse(String text);  
16.   
17.   
18. //将JavaBean转换为JSONObject或者JSONArray。  
19. public static final Object toJSON(Object javaObject);

三.实战

1. 创建复杂对象

[java] view plain copy
1. package test;  
2. import java.io.Serializable;  
3. import java.util.ArrayList;  
4. import java.util.Map;  
5. public class User{  
6. public String username="";  
7. public int id=0;  
8. public ArrayList<Link>link=null;  
9. public Map<String,Link> result=null;  
10. //getter and setter省略(读者自行补充)  
11. }  
12. public class Link{  
13. public String name="";  
14. public String phone="";  
15. //getter and setter省略(读者自行补充)   
16. }

2.主程序

[java] view plain copy
1. package test;  
2. import java.util.ArrayList;  
3. import java.util.HashMap;  
4. import java.util.Map;  
5. import com.alibaba.fastjson.JSON;  
6. import com.alibaba.fastjson.JSONObject;  
7. import com.alibaba.fastjson.JSONArray;  
8. import com.alibaba.fastjson.JSONException;   
9. public class FastJsonTest {  
10. //填充user对象   
11. public static void setUser(User user){  
12. 1);  
13. "xiaoxiang");  
14. new Link();  
15. "rongrong");  
16. "1234234");  
17. new Link();  
18. "rongrong");  
19. "1234234");  
20. new ArrayList();  
21.         list.add(lk1);  
22.         list.add(lk);  
23.         user.setLink(list);  
24. new HashMap();  
25. "123",lk);  
26. "234",lk1);  
27.         user.setResult(map);  
28.     }  
29. public static void main(String []args){  
30. new User();  
31.     setUser(user);  
32. //将javabean转成json  
33.  String str=JSON.toJSONString(user);   
34. "fastJson"+str);  
35. //将json转成java bean  
36. class);  
37. "123").getName());  
38. }}

四.总结
FastJson确实在复杂对象序列化和反序列化方面做的比较好,而且速度和效率上都比java原生序列化机制要好。
但FastJson使用大对象或者大文件时,效果没有jackson好。你所以需要根据具体项目选择合适的序列化工具。