java序列化(三)之FastJson实现复杂对象序列化与反序列化
来源:互联网 发布:linux系统jdk1.6 下载 编辑:程序博客网 时间:2024/05/21 02:52
一.认识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,常用的序列化操作都可以在JSON类上的静态方法直接完成。
1.常用函数
//将JavaBean序列化为JSON文本(常用)public static final String toJSONString(Object object);//把JSON文本parse为JavaBean(常用)public static final T parseObject(String text, Class clazz);
2.其他函数
// 把JSON文本parse成JSONObjectpublic static final JSONObject parseObject(String text);// 把JSON文本parse成JSONArray public static final JSONArray parseArray(String text);//把JSON文本parse成JavaBean集合public static final List parseArray(String text, Class clazz);// 将JavaBean序列化为带格式的JSON文本public static final String toJSONString(Object object, boolean prettyFormat); // 把JSON文本parse为JSONObject或者JSONArraypublic static final Objectparse(String text);//将JavaBean转换为JSONObject或者JSONArray。public static final Object toJSON(Object javaObject);
三.实战
1. 创建复杂对象
package test;import java.io.Serializable;import java.util.ArrayList;import java.util.Map;public class User{public String username="";public int id=0;public ArrayList<Link>link=null;public Map<String,Link> result=null;//getter and setter省略(读者自行补充)}public class Link{public String name="";public String phone="";//getter and setter省略(读者自行补充) }2.主程序
package test;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONException; public class FastJsonTest { //填充user对象 public static void setUser(User user){ user.setId(1); user.setUsername("xiaoxiang"); Link lk=new Link(); lk.setName("rongrong"); lk.setPhone("1234234"); Link lk1=new Link(); lk1.setName("rongrong"); lk1.setPhone("1234234"); ArrayList<Link> list=new ArrayList(); list.add(lk1); list.add(lk); user.setLink(list); Map map=new HashMap(); map.put("123",lk); map.put("234",lk1); user.setResult(map); }public static void main(String []args){ User user=new User(); setUser(user); //将javabean转成json String str=JSON.toJSONString(user); System.out.println("fastJson"+str); //将json转成java bean User myuser=JSON.parseObject(str,User.class); System.out.println(myuser.getResult().get("123").getName());}}
四.总结
FastJson确实在复杂对象序列化和反序列化方面做的比较好,而且速度和效率上都比java原生序列化机制要好。
但FastJson使用大对象或者大文件时,效果没有jackson好。你所以需要根据具体项目选择合适的序列化工具。
1 0
- java序列化(三)之FastJson实现复杂对象序列化与反序列化
- FastJson实现复杂对象序列化与反序列化
- 使用Fastjson序列化与反序列化对象
- fastjson 复杂json 序列化、反序列化
- 如何序列化与反序列化复杂对象
- 复杂对象序列化与反序列化
- Java之对象序列化与反序列化
- 【java-之路】序列化与反序列化对象
- Java之对象的序列化与反序列化
- C# 实现复杂对象的序列化与反序列化
- FastJson解析实例--对象序列化和反序列化
- java序列化(二)之jackson实现简单对象的序列化,反序列化
- 对象序列化与反序列化
- 序列化与反序列化对象
- 对象序列化与反序列化
- 对象序列化与反序列化
- 对象序列化 与反序列化
- 对象序列化与反序列化
- 华为S2700-26TP-SI-AC交换机的光模块解决方案
- 去年被315晚会点名的互联网公司,现在活得好吗
- C#调用Matlab库函数
- HttpClient使用总结
- iOS内存分配
- java序列化(三)之FastJson实现复杂对象序列化与反序列化
- 布局改变监听事件
- Android|图形图像之Matrix
- hdfs回顾总结(1)
- 比勤奋更重要的,是深度思考的能力
- 三天打鱼两天晒网(C语言)
- 界面间传值的各种方式
- JavaScript清空数组
- 字数统计