ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jackson Support Instant Serialize and Deserialize Global Config

2022-07-14 15:03:12  阅读:165  来源: 互联网

标签:Instant Deserialize Serialize dateTimeFormatter var new addDeserializer class


@Bean
public ObjectMapper objectMapper() {
    var dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    var dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    var timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
    var javaTimeModule = new JavaTimeModule();
    javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormatter))
            .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormatter))
            .addSerializer(LocalDate.class, new LocalDateSerializer(dateFormatter))
            .addDeserializer(LocalDate.class, new LocalDateDeserializer(dateFormatter))
            .addSerializer(LocalTime.class, new LocalTimeSerializer(timeFormatter))
            .addDeserializer(LocalTime.class, new LocalTimeDeserializer(timeFormatter))
            .addSerializer(Instant.class, new JsonSerializer<>() {
                @Override
                public void serialize(Instant instant, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                    jsonGenerator.writeString(instant.atZone(ZoneOffset.of("+8")).format(dateTimeFormatter));
                }
            })
            .addDeserializer(Instant.class, new JsonDeserializer<>() {
                @Override
                public Instant deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
                    return LocalDateTime.parse(jsonParser.getValueAsString(), dateTimeFormatter).toInstant(ZoneOffset.of("+8"));
                }
            });
    return JsonMapper.builder()
            .deactivateDefaultTyping()
            .addModules(javaTimeModule)
            .build();
}

标签:Instant,Deserialize,Serialize,dateTimeFormatter,var,new,addDeserializer,class
来源: https://www.cnblogs.com/seliote/p/16477660.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有