@JsonDeserialize注解的使用

@JsonDeserialize注解的使用

问题描述:

某次上线项目之后,把数据保存的数据创建时间也回传到前端了,前端会把后端所有的数据都传到后端,这个Date类型的字段后端解析不了,导致调用接口一直出现错误。

原因分析:

后端接收创建时间字段的时候没有格式化为后端可以识别的Date类型

解决方案:

在接收前端传过来的实体类上增加@JsonDeserialize注解。

@JsonDeserialize(using = DateTimeJsonDeserializer.class)
private Date createTime; // 创建时间

@JsonDeserialize作用:反序列化对参数进行封装
DateTimeJsonDeserializer是写的实现对Date类型参数进行的封装格式化类。该类需要继承 JsonDeserializer 类,并重写 deserialize()方法。
具体实现:

private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	@Override
	public Date deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException {
		try {
			return format.parse(jsonParser.getText());
		} catch (ParseException e) {
			return null;
		}
	}

版权声明:本文为qq_35238590原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。