java中使用fastjson进行对象的序列化和反序列化

     2022-03-22     201

关键词:

Java中使用FastJSON进行对象的序列化和反序列化

1.添加依赖,maven的pom.xml文件中添加以下依赖

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
</dependency>

2.FastJSON序列化和反序列化工具类

import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

// JSON/对象转换类
public class JsonUtils {

    /**
     * JSON字符串转换成对象
     */
    public static <T> T jsonStringToObject(String jsonStr,Class<T> obj){
        try{
             return JSONObject.parseObject(jsonStr, obj);
        }catch(Exception e){
            System.out.println("将JSON串{}转换成 指定对象失败:"+jsonStr);
            e.printStackTrace();
        }
        return null;
    }

     /**
     * 对象转JSON    
     */
    public static <T> String objectToJson(T obj){
        try{
            String json=JSONObject.toJSONString(obj);
            return json;
        }catch(Exception e){
            System.out.println("将指定对象转成JSON串{}失败:"+obj.toString());
            e.printStackTrace();
        }
        return "";
    }

     /**
     * List<T>对象转成json
     */
    public static<T> String listToJsonString(List<T> objList){
        try{
            String json=JSONObject.toJSONString(objList);
            return json;
        }catch(Exception e){
            System.out.println("将对象列表转成JSON串{}失败:"+objList.toString());
            e.printStackTrace();
        }
        return "";
    }

     /**
     * json转换成对象列表List<T>
     */
    public static <T> List<T> jsonStringToList(String json,Class<T> obj){
        try{
            return JSONArray.parseArray(json, obj);
        }catch(Exception e){
            System.out.println("将JSON串{}转成对象列表失败:"+json);
            e.printStackTrace();
        }
        return null;
    }

    /*
     * 将JSON串转换为JSONOBJECT
     */
    public static JSONObject stringTOJSONObject(String json){
        JSONObject jsonObject = null;
        try {
            jsonObject = JSONObject.parseObject(json);
        } catch (Exception e) {
            System.out.println("JSON串{} 转换成 JsonObject失败"+json);
        }
        return jsonObject;
    }
}

3.使用

(1)序列化

List<User> users=new ArrayList<User>();
    for(int i=0;i<20;i++){
        User user=new User();
        user.setName("FastJSON"+i);
        user.setAge(20+i);
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
        user.setBirthday(dateformat.parse("1991-10-01"));
        user.setEmail("12345678"+i+"@qq.com");

        // 序列化单个对象
        String json=JsonUtils.objectToJson(user);

        users.add(user);

        // 序列化对象列表
        // String json=JsonUtils.listToJsonString(users);
}       

(2)反序列化

        // 反序列化单个对象
        User u=JsonUtils.jsonStringToObject(json, User.class);
        System.out.println(u.toString());

        // 将JSON串转换为JSONOBJECT
        JSONObject js=JsonUtils.stringTOJSONObject(json);
        System.out.println(js);

        // 反序列化对象列表
        List<User> list=JsonUtils.jsonStringToList(json, User.class);
        System.out.println(list);

在java中进行序列化和反序列化

对象序列化的目标是将对象保存在磁盘中,或者允许在网络中直接传输对象。对象序列化允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上或者通过网络将这种二进制流传输到另外... 查看详情

objectoutputstream和objectinputstream对对象进行序列化和反序列化(代码片段)

1Java序列化和反序列化简介Java序列化是指把对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为java对象的过程。我们把对象序列化成有序字节流,保存到本地磁盘或者Redis等媒介中,或者直接通过网络传输进行远... 查看详情

java中的序列化和反序列化(代码片段)

Java中的序列化和反序列化基本概念序列化反序列化序列化和反序列化总结自定义序列化策略Externalizabletransient静态变量序列化ID破坏单例基本概念Java中创建对象时,一旦程序终止,创建的对象可能就不存在.要想使得对象能够在程序... 查看详情

什么是java的序列化和反序列化?

1、什么是序列化?为什么要序列化?Java序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通... 查看详情

谈谈序列化和反序列化(代码片段)

序列化简介Java序列化是指将一个Java对象转化为一个二进制流的过程,反序列化是指将二进制流转化为一个Java对象的过程。一般进行序列化的目的有:当程序退出时,这些对象也就消失了,而序列化正是为了将这些对象保存起来以... 查看详情

24java学习之对象序列化和反序列化

一.序列化和反序列化的概念对象序列化:把对象转换为字节序列的过程对象反序列化:把字节序列恢复为对象的过程1.为何要进行序列化    我们知道当虚拟机停止运行之后,内存中的对象就会消失。在很多应用中... 查看详情

java对象的序列化和反序列化

一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1)把对象的字节序列永久地保存到硬盘上,... 查看详情

什么是json的序列化和反序列化

您的浏览器不支持HTML5视频zymedia(\'video\')参考技术A序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决... 查看详情

47序列化和反序列化(代码片段)

...节序列然后进行传输。将对象转换为字节序列的过程叫做序列化,反之叫做反序列化。一个对象如果支持序列化,需要实现Serializable的接口,这个接口中没有任何方法,实现该接口后,JVM会给这个对象做特殊待遇将java对象保存... 查看详情

(json)序列化和反序列化,这个是啥意思呀?

...为Java对象。把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。对象的序列化主要有两种用途:1)把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;2)在... 查看详情

序列化和反序列化

什么是java的序列化和反序列化java序列化就是把java对象转换为字节序列的过程。对于transient和static修饰的属性不会被序列化。原因:transient的作用就是这样,static是因为序列化作用的是对象,static修饰后是属于类的,所以没用。... 查看详情

java下用jackson进行json序列化和反序列化(转)

Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的JSON操作方法。一、准备工作首先去官网下载Jackson工具包,下载地址http://wiki.fasterxml.com/... 查看详情

java--序列化和反序列化

一、序列化java序列化的过程是把对象转换为字节序列的过程序列化的两种用途:  1)把对象的字节序列永久保存大搜硬盘上,通常存放到一个文件中  2)在网络上传送对象的字节序列jdk中的序列化API:java.io.ObjectOutputStream... 查看详情

fastjson反序列化漏洞原理及利用(代码片段)

fastjson反序列化漏洞原理及利用一、序列化/反序列化1.什么是序列化和反序列化1.1基本概念(1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程;(2)*... 查看详情

java中序列化和反序列化中的静态成员问题

...我的博客一起来学习下这个过程。   JAVA中的序列化和反序列化主要用于: (1)将对象或者异常等写入文件,通过文件交互传输信息;(2)将对象或者异常等通过网络进行传输。   那么为什么需要序列... 查看详情

Flutter中对象的JSON序列化和反序列化

】Flutter中对象的JSON序列化和反序列化【英文标题】:JSONserializationanddeserializationtoobjectsinFlutter【发布时间】:2017-11-1910:30:53【问题描述】:自从Flutter从其SDK中取出dart:mirrors后,不再可能使用dartson之类的库进行JSON对象序列化/反... 查看详情

java序列化和反序列化

什么叫序列化和反序列化?序列化:对象转化为字节序列的过程叫做对象的序列化反序列化:字节序列恢复为对象的过程叫做对象的反序列化 为啥要序列化?(序列化的用途)-需要将对象永久的保存在硬盘中(比如Session对象)-网络传... 查看详情

java序列化10倍性能优化对比测试(代码片段)

今天分享Java对象序列化的不同方法,并对不同序列化方式的性能进行基准测试。关于持久队列来讲,必须将Java堆内存的对象转换成文件中的二进制数据,对象序列化的性能将显著影响整体的性能表现。相当多的高性能框架都会... 查看详情