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注解。
相关推荐
public class User {
@JSONField(name = "userId")
private int id;
@JSONField(serialize =
一、概述
1、序列化的作用
个人理解它的主要作用是为了对象可以跨平台存储和进行网络传输,在网络传输的时候,我们需要经过 IO,而 IO 传输支持的就是字节数组这种格式,所以序列化过后可以更好的传输。
一、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 注解将方法