FastJson实现复杂对象序列化与反序列化
来源:互联网 发布:java小球下落 编辑:程序博客网 时间:2024/06/07 10:14
一.认识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成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="";
- public String phone="";
- //getter and setter省略(读者自行补充)
- }
- 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好。你所以需要根据具体项目选择合适的序列化工具。
阅读全文
0 0
- FastJson实现复杂对象序列化与反序列化
- java序列化(三)之FastJson实现复杂对象序列化与反序列化
- 使用Fastjson序列化与反序列化对象
- fastjson 复杂json 序列化、反序列化
- 如何序列化与反序列化复杂对象
- 复杂对象序列化与反序列化
- C# 实现复杂对象的序列化与反序列化
- FastJson解析实例--对象序列化和反序列化
- C# 实现复杂对象的序列化与反序列化[收藏此页] [打印]【IT168知识库】
- 关于复杂对象的序列化和反序列化
- 对象序列化与反序列化
- 序列化与反序列化对象
- 对象序列化与反序列化
- 对象序列化与反序列化
- 对象序列化 与反序列化
- 对象序列化与反序列化
- 对象序列化与反序列化
- 对象序列化与反序列化
- 【Node全局变量global模块】
- 太上感应篇0022
- 第四周 【项目1
- 详解ViewPager无限循环及缩放动画PageTransformer的实现
- Windows下在Java中调用GraphViz
- FastJson实现复杂对象序列化与反序列化
- 简单生成式对抗网络
- 【NOIP2017提高A组模拟9.23】碎
- 微软人脸数据库ms-celeb-1m清洗方案
- 什么是敏捷开发
- Java IO流
- VS发布网站时,报错提示:“未能将文件xxx复制到xxx,未能找到文件xx”三种解决方案!
- 太上感应篇0023
- 欢迎使用CSDN-markdown编辑器