FastJson实现复杂对象序列化与反序列化
⼀.认识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包下载地址
⼆.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成JSONObject
public 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或者JSONArray
public 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="";
object topublic 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 JSONString(user);
System.out.println("fastJson"+str);
//将json转成java bean
User myuser=JSON.parseObject(str,User.class);
System.out.Result().get("123").getName()); }}
四.总结
FastJson确实在复杂对象序列化和反序列化⽅⾯做的⽐较好,⽽且速度和效率上都⽐java原⽣序列化机
制要好。但FastJson使⽤⼤对象或者⼤⽂件时,效果没有jackson好。你所以需要根据具体项⽬选择合适的序列化⼯具。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论