加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Alibaba fastjson 序列化与反序列化

发布时间:2020-12-16 19:43:56 所属栏目:百科 来源:网络整理
导读:fastjson在官网的定义号称最小最快 多态的json序列化工具。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。 JSON这个类是fastjson API的入口,主要的功能都通

fastjson在官网的定义号称最小最快 多态的json序列化工具。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。

JSON这个类是fastjson API的入口,主要的功能都通过这个类提供。下面是这个类的重要几个方法介绍:


序列化API

package com.alibaba.fastjson;

public abstract class JSON {
    // 将Java对象序列化为JSON字符串,支持各种各种Java基本类型和JavaBean
    public static String toJSONString(Object object,SerializerFeature... features);


    // 将Java对象序列化为JSON字符串,返回JSON字符串的utf-8 bytes
    public static byte[] toJSONBytes(Object object,SerializerFeature... features);


    // 将Java对象序列化为JSON字符串,写入到Writer中
    public static void writeJSONString(Writer writer,Object object,SerializerFeature... features);


    // 将Java对象序列化为JSON字符串,按UTF-8编码写入到OutputStream中
    public static final int writeJSONString(OutputStream os,// 
                                            Object object,// 
                                            SerializerFeature... features);
}



JSON字符串反序列化API


package com.alibaba.fastjson;


public abstract class JSON {
    // 将JSON字符串反序列化为JavaBean
    public static <T> T parSEObject(String jsonStr,Class<T> clazz,Feature... features);


    // 将JSON字符串反序列化为JavaBean
    public static <T> T parSEObject(byte[] jsonBytes,// UTF-8格式的JSON字符串
                                    Class<T> clazz,Feature... features);


    // 将JSON字符串反序列化为泛型类型的JavaBean
    public static <T> T parSEObject(String text,TypeReference<T> type,Feature... features);


    // 将JSON字符串反序列为JSONObject
    public static JSONObject parSEObject(String text);
}



Demo


parse Tree

import com.alibaba.fastjson.*;

JSONObject jsonObj = JSON.parSEObject(jsonStr);


parse POJO


import com.alibaba.fastjson.JSON;


Model model = JSON.parSEObject(jsonStr,Model.class);




parse POJO Generic


import com.alibaba.fastjson.JSON;


Type type = new TypeReference<List<Model>>() {}.getType(); 
List<Model> list = JSON.parSEObject(jsonStr,type);




convert POJO to json string

import com.alibaba.fastjson.JSON;


Model model = ...; 
String jsonStr = JSON.toJSONString(model);




convert POJO to json bytes


import com.alibaba.fastjson.JSON;


Model model = ...; 
byte[] jsonBytes = JSON.toJSONBytes(model);




write POJO as json string to OutputStream


import com.alibaba.fastjson.JSON;


Model model = ...; 
OutputStream os;
JSON.writeJSONString(os,model);




write POJO as json string to Writer


import com.alibaba.fastjson.JSON;


Model model = ...; 
Writer writer = ...;
JSON.writeJSONString(writer,model);


总结:


更多关于fastjson的知识可以去w3c去了解:https://www.w3cschool.cn/fastjson/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读