有时候由于系统问题,在使用JsonMapper进行json格式转换成实体的时候,有可能会出现时间存在多种格式的情况,而原本的JsonMapper的setformat方法设置时间格式时却只能指定一种时间格式进行转换,最后导致整个json的转换失败。
我在学习JsonMapper的时候并没有很透彻,只是根据网上的文章配置一些简单的参数,所以一时对这种情况无耻从下手。所以我最先想到的方法是重写这个DateFormat时间转换类,可是却非常尴尬由于知识浅薄,看不懂JsonMapper源码,不知如何正确地设置JsonMapper时间转换的反序列化中。所以我从网上找到一个例子,和大家分享一下!
重写了DateFormat类
package yspay.manager.dsf.util;
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* .扩展jackson日期格式化支持格式
*/
public class ObjectMapperDateFormatExtend extends DateFormat {
private static final long serialVersionUID = 1L;
private DateFormat dateFormat;
// 该格式为测试环境格式
private SimpleDateFormat format1 = new SimpleDateFormat(
"yyy-MM-dd HH:mm:ss");
// 构造函数传入objectmapper默认的dateformat
public ObjectMapperDateFo