@RequestBody注解DATE类型转换异常

简介: 在使用springboot开发过程中,使用@RequestBody注解接收前端传进的参数时,属性中难免会有日期,但使用@RequestBody注解日期转换会报Cannot deserialize value of type java.util.Date from String '2019-xx-xx',下面的方式经过实践可行。

在使用springboot开发过程中,使用@RequestBody注解接收前端传进的参数时,属性中难免会有日期,但使用@RequestBody注解日期转换会报Cannot deserialize value of type java.util.Date from String '2019-xx-xx',下面的方式经过实践可行。在Date类型属性上加上@JsonDeserialize,具体日期格式可自行修改
@JsonDeserialize(using = DateTimeDeserializers.class)

private Date insuranceDate;

创建两个类

  • DateTimeDeserializers
  • DateTimeJsonSerializers

DateTimeJsonSerializers类

public class DateTimeJsonSerializers extends JsonSerializer<Date> {
    public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException,JsonProcessingException
    {
        jsonGenerator.writeString(format.format(date));
    }
}

DateTimeDeserializers类

public class DateTimeDeserializers extends JsonDeserializer<Date> {
    public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");
    @Override
    public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
            throws IOException,JsonProcessingException
    {
        try
        {
            return format.parse(jsonParser.getText());
        }
        catch(Exception e)
        {
            throw new RuntimeException(e);
        }
    }
}
相关文章
|
JSON 前端开发 Java
JSON注解和异常处理的使用
JSON注解和异常处理的使用
135 0
|
6月前
|
存储 Java 关系型数据库
MyBatisPlus中的TypeHandler | 自定义字段类型转换Handler
MyBatisPlus中的TypeHandler | 自定义字段类型转换Handler
772 0
|
Java 容器
main方法里使用@Autowired注解报空指针错误
main方法里使用@Autowired注解报空指针错误
325 0
|
前端开发
2021-08-12参数绑定,类型转换,数据校验,处理异常
2021-08-12参数绑定,类型转换,数据校验,处理异常
39 0
|
Java 数据安全/隐私保护
使用反射实现@RequestBody的参数校验功能
springboot中对实体类参数中属性进行校验一般都是使用javax.validation中提供的注解
|
Java Spring
springmvc自定义类型转换器解决Date类型转换
springmvc自定义类型转换器解决Date类型转换
|
Java 数据库连接 API
java参数校验(@Validated、@Valid)使用详解
java参数校验(@Validated、@Valid)使用详解
4753 0
|
JSON 前端开发 fastjson
使用@ResponseBody后返回500错误
使用@ResponseBody后返回500错误
196 0
|
Java Spring
SpringMVC中自定义(日期)类型转换器
SpringMVC中自定义(日期)类型转换器
SpringMVC中自定义(日期)类型转换器
|
Java Spring
自定义@Validated参数注解
Spring Validated参数校验
393 0