bean中的Jackson变换json数据

时间:2018-07-13 10:04:04

标签: json spring-boot jackson

当bean有日期时,我在bean中进行json转换时遇到问题。 例如,客户发送日期为2018-07-13 11:30:00,而jasckson在bean中存储日期为2018-07-13 13:30:00。

你能帮我吗?

我正在使用spring-boot 1.5.10和jackson 1.9.10

1 个答案:

答案 0 :(得分:0)

尝试创建一个@Configuration类,并在这两个bean定义中添加广告:

@Bean
    public JavaTimeModule timeModule(DateTimeFormatter dateTimeFormatter){
        JavaTimeModule timeModule = new JavaTimeModule();
        timeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormatter));
        timeModule.addSerializer(ZonedDateTime.class, new ZonedDateTimeSerializer(dateTimeFormatter));
        return timeModule;
    }

    @Bean
    public ObjectMapper objectMapper(JavaTimeModule timeModule) {
        return Jackson2ObjectMapperBuilder.json()
                .failOnUnknownProperties(false)
                .featuresToEnable(com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS)
                .featuresToDisable(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
                .modules(timeModule)
                .build();
    }