fastjson与jackson关于日期序列化

阅读数:268 评论数:0

跳转到新版页面

分类

python/Java

正文

一、默认日期序列化

1、fastjson默认使用的序列格式

public static String           DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

2、jackson默认支持的日期反序列格式

("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd")) 

jackson默认的日期反序不支持yyyy-MM-dd HH:mm:ss这种格式,所以反序化失败。

二、解决办法

1、重写jackson反序化

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
 
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
/**
 * @version 1.0.0
 * @description 重写反序列化
 * @date 2018/12/25 9:51
 **/
 
public class CustomJsonDateDeserializer extends JsonDeserializer<Date> {
 
    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = jp.getText();
        try {
            return format.parse(date);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }
}

在需要的date属性上添加注解

@JsonDeserialize(using = CustomJsonDateDeserializer.class)
private Date createTime;

2、直接使用jackson注解,不需要重写反序化

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;

GMT+8 表示东八区

3、直接使用fastjson注解。




相关推荐

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

public class User { @JSONField(name = "userId") private int id; @JSONField(serialize =

一、概述 1、序列化的作用 个人理解它的主要作用是为了对象可以跨平台存储和进行网络传输,在网络传输的时候,我们需要经过 IO,而 IO 传输支持的就是字节数组这种格式,所以序列化过后可以更好的传输。

import com.alibaba.fastjson.JSONObject; public BaseJsonRst exec

一、Java对象转JSON System.out.println("~~~~~~~~~~~ 1.Java对象 转 Json字符串 ~~~~~~~~~~~"); String ju = JSON.toJ

一、@JsonFormat  1、作用 约束时间的接收格式和响应格式(接收和响应的都是JSON字符串),用于在JSON和java.util.Date之间约束,注意因为我们在东八区,使用时需要加上时区(

一、概述 FastJsonConfig是用于配置FastJson序列化和反序列化的配置类。它可以设置各种序列化和反序列化的参数,包括日期格式、序列化特性、过滤器、自定义序列化器和反序列化器等。 二、序

一、消息转换器 在使用SpringMVC框架时,由前端发请求给后端,请求体中的内容就被称为消息。消息转换器就是实现消息与Java对象的相互转换,将请求体中的消息转为Java对象,反过来将Java对象转

一、概述 SpringMVC默认使用的是Jackson,Jackson是spring-boot-starter-json依赖中的一部分,spring-boot-starter-web中包含spring

一、概述 Spring 中的处理器的实现多变,比如用户的处理器可以实现 Controller 接口或者 HttpRequestHandler 接口,也可以用 @RequestMapping 注解将方法