springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式
JsonDeserialize:
1、请求接收的是一个json,并且由对象接收
@RequestMapping(value = "/query", method = {RequestMethod.POST},consumes = "application/json")
public WebDataListResponse query(@RequestBody(required = true) DataLogQuryEntity dataLogQuryEntity){
2、对象属性的set方法编写注解
DataLogQuryEntity对象中需要接受Date类型的对象:
public class DataLogQuryEntity { @JsonDeserialize(using = DateJsonDeserializer.class)
public void setStartTime(Date startTime) {
this.startTime = startTime;
} }
注lombok的注意一定要写在setter方法上
3、自定义实现
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 org.apache.commons.lang3.StringUtils; import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateJsonDeserializer extends JsonDeserializer<Date> {
public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException, JsonProcessingException {
try {
if (jsonParser != null && StringUtils.isNotEmpty(jsonParser.getText())) {
return format.parse(jsonParser.getText());
} else {
return null;
}
} catch (Exception e) {
System.out.println(e.getMessage());
throw new RuntimeException(e);
} }
}
JsonSerialize用法:
1、对象的get方法应用注解
@JsonSerialize(using = CustomDateSerializer.class)
public LocalDateTime getUpdateTime() {
return updateTime;
}
2、自定义实现
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException;
import java.time.LocalDateTime; public class CustomDateSerializer extends JsonSerializer<LocalDateTime> {
@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
gen.writeString(value.toString());
}
}
springboot @RequestBody使用JsonSerialize与 JsonDeserialize自定义转参数,处理Date日期格式的更多相关文章
- SpringBoot学习笔记(4):与前端交互的日期格式
SpringBoot学习笔记(4):与前端交互的日期格式 后端模型Date字段解析String 我们从前端传回来表单的数据,当涉及时间.日期等值时,后端的模型需将其转换为对应的Date类型等. 我们可 ...
- spring自定义参数绑定(日期格式转换)
spring参数绑定时可能出现 BindException(参数绑定异常),类似下面的日期绑定异常(前台传过来是String类型,实际的pojo是Date类型) default message [Fa ...
- 自定义类型转换器---转Date类型
在使用springMVC过程中 ,假如页面使用了 <form action="${pageContext.request.contextPath}/user/testDate" ...
- Springboot学习06-Spring AOP封装接口自定义校验
Springboot学习06-Spring AOP封装接口自定义校验 关键字 BindingResult.Spring AOP.自定义注解.自定义异常处理.ConstraintValidator 前言 ...
- Springboot 项目启动后执行某些自定义代码
Springboot 项目启动后执行某些自定义代码 Springboot给我们提供了两种"开机启动"某些方法的方式:ApplicationRunner和CommandLineRun ...
- 自定义spring参数注解 - 打破@RequestBody单体限制
本文主要描述怎样自定义类似@RequestBody这样的参数注解来打破@RequestBody的单体限制. 目录1 @RequestBody的单体限制2 自定义spring的参数注解3 编写sprin ...
- SpringBoot系列教程web篇之自定义异常处理HandlerExceptionResolver
关于Web应用的全局异常处理,上一篇介绍了ControllerAdvice结合@ExceptionHandler的方式来实现web应用的全局异常管理: 本篇博文则带来另外一种并不常见的使用方式,通过实 ...
- 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)
[SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...
- SpringBoot自定义请求参数转换器
需求 我们可能对接客户的系统的时候,虽然Spring为我们提供的很多方便的转换器,但是遇到还是可能遇到需要自定义请求参数转换器的情况. 日期转换器 SpringBoot默认是没有配置日期转换器的我们可 ...
随机推荐
- SSH 远程登陆
2019-03-10 20:41:39 一.什么是SSH 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登 ...
- springboot启动配置原理之三(事件监听机制)
ApplicationContextInitializer public class HelloApplicationContextInitializer implements Application ...
- day050 前端Jquery库的使用
一.导入jquery文件 <script src=" jquery库文件"></script> 二.选择标签 >>概念明晰: $是jQuery类 ...
- centos重置密码
重置root密码: 法一: 1.开机按e 2.将linux 16后的ro改为rw init=/sysroot/bin/ ...
- 内存泄漏 tensorflow
http://blog.csdn.net/qq_25737169/article/details/78125550
- java 打包 war包
接下来,执行jar命令,格式为: jar cvf cmd.war . 打包文件名称 要打包的目录 打包文件保存路径 解压: jar xvf cmd.war
- AndroidStudio连不上Android设备真机
AndroidStudio连不上Android设备真机 刚好遇到这个问题,查阅了很多资料,看到有人分享了引起该问题的几个原因,我总结了一下: 1.手机设置问题.开USB调试 方法:手机设置-开发人员调 ...
- L337 Should We Relax About Screen Time?
The UK government's plans for regulation of the internet and social media contained a long list of o ...
- C语言里有没有像C++里面的sort函数一样的函数?有!
C 库函数 - qsort() 描述 C 库函数 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void ...
- 使用Java API方式连接HDFS Client测试
IDEA中新建Maven工程,添加POM依赖, 在IDE的提示中, 点击 Import Changes 等待自动下载完成相关的依赖包. <?xml version="1.0" ...