SpingBoot序列化以及反序列化

Posted 阿志@Duan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpingBoot序列化以及反序列化相关的知识,希望对你有一定的参考价值。

一、Java常见的序列化与饭序列化工具

1、jackson(springboot默认的序列化工具),jackson底层采用的是ObjectMapper技术进行序列化以及反序列化的。

2、alibaba-fastjson。

 

二、SpringBoot日期格式序列化(特定讲一下)

1、SpringBoot默认是可以接受时间戳格式自动转换成java.util.Date。默认是不支持字符串自动转成java.util.Data。

2、SpringBoot如何接收字符串自动转换成java.util.Date

2.1 全局处理方式 (配置文件)。

#Spring默认接收时间戳进行反序列化到Date。这样就可以同时支持时间戳或者自定义的字符串格式日期转java.util.Date
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#jackson默认的时区是Greenwich Time,我们所处的是东八区
spring.jackson.time-zone=GMT+8

接受请求

 输出格式

 

2.2 具体字段具体处理方式

@JsonFormat这里会覆盖前面配置文件的格式

 

 

@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

public class DataDTO {

    private String name;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") //用于application/json  可以决定序列化以及发序列化的格式
    //@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") //用于multipart/form-data表单提交方式 只能决定反序列化的格式
    private Date create;

    private Integer count;

    private String cA;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getCreate() {
        return create;
    }

    public void setCreate(Date create) {
        this.create = create;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public String getcA() {
        return cA;
    }

    public void setcA(String cA) {
        this.cA = cA;
    }
}

 

三、SpringBoot默认jacson序列化工具常用注解

 

以上是关于SpingBoot序列化以及反序列化的主要内容,如果未能解决你的问题,请参考以下文章

Flink实战系列Flink 1.14.0 消费 kafka 数据自定义反序列化器

一行代码实现iOS序列化与反序列化

序列化以及反序列化

JSON的序列化和反序列化eval()和parse()方法以及stringfy()方法

今晚拿下PHP反序列化的一系列操作

Python代码审计实战案例总结之反序列化和命令执行!