Spring MVC中的日期序列化

问题描述 投票:1回答:1

在我的json输出中Date被渲染为Object,因此使用Postman测试会抛出一个错误:期望'u'而不是'e'

{
    "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,

java json spring date serialization
1个回答
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" />

© www.soinside.com 2019 - 2024. All rights reserved.