Spring MVC中的日期序列化

时间:2018-01-08 09:25:20

标签: java json spring date serialization

在我的json输出中Date是rendred as Object,所以使用Postman测试会抛出一个错误:期望' u'而不是'

{
    "ao_id":6,
    "code":"AOO N°199-2017 C/T",
    "objet":"Marché Cadre - Travaux de réfection de voiries",
    "date_saisie":new Date(1514851200000)
    }

我用:

注释了我的实体类
 @Column(name = "date_saisie")
    @JsonFormat(pattern="yyyy-MM-dd")
    private Date date_saisie

如何正确序列化我的日期对象.. THX,

1 个答案:

答案 0 :(得分:2)

理想的方法是使用以下Jackson配置进行配置 -

objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

这将确保所有日期都以一致的格式序列化。

以下是供您参考的完整配置 -

public class JacksonMapper extends ObjectMapper
{
    private static final Logger logger = LogManager.getLogger(JacksonMapper.class);

    public JacksonMapper()
    {
        this.setSerializationInclusion(JsonInclude.Include.NON_NULL);

        this.disable(SerializationFeature.INDENT_OUTPUT);
        this.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

        this.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        this.registerModules(new Jdk8Module()); // Enables support for JDK 8 data types e.g. Optional
        this.registerModule(new JavaTimeModule()); // Enables serialization of Java 8 timestamps
    }
}

使用以下XML配置创建objectmapper的bean -

<bean id="objectMapper" class="config.JacksonMapper" />