spring - 将 spring.jackson.serialization.write-dates-as-timestamps 和 date-format 全局设置为 ISO 1806

标签 spring spring-boot jackson

我知道,关于这个问题有几个类似的问题,但我找不到任何令人满意的解决方案。这就是为什么我想在这里重新打开它。

  • 我想将SpringBootDates(java.util)JSON序列化设置为ISO1806格式全局。

我试过:

添加依赖: com.fasterxml.jackson.datatype:jackson-datatype-joda

设置属性:

spring.jackson.serialization.write-dates-as-timestamps=false spring.jackson.date-format=yyyy-MM-dd'T'HH:mm:ss'Z' 例如

- 没用。静止时间戳

还尝试了一些其他解决方案,但它们没有用,或者被弃用或被黑等......

  • 那么在当前状态下如何正确解决呢?

边注: 我不能使用 @JsonFormat() 注释,因为这些类是由我现在无法访问的旧系统生成的。这就是我寻求全局解决方案的原因。无论如何,全局灵魂似乎是合乎逻辑的。

希望有人能帮忙。 提前感谢您的任何提示。

亲切的问候

格雷戈尔

最佳答案

您可以使用序列化来做到这一点。只需将这个 bean 添加到您的配置类中,并根据您的要求编写序列化类。

@Bean
    public Jackson2ObjectMapperBuilder configureObjectMapper() {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        ObjectMapper objectMapper = new ObjectMapper();
        SimpleModule module = new SimpleModule();
        module.addSerializer(Date.class, new CustomDateSerializer());
        objectMapper.registerModule(module);
        builder.configure(objectMapper);
        return builder;
    }

序列化类:

public class CustomDateSerializer extends JsonSerializer<Date>{
    @Override
    public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        String date = null;//parse here as per your requirement.
        gen.writeString(date);
    }
}

关于spring - 将 spring.jackson.serialization.write-dates-as-timestamps 和 date-format 全局设置为 ISO 1806,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51711553/

相关文章:

java - Spring自定义转换器抛出异常

java - Jackson ObjectMapper 设置 JsonFormat.Shape.ARRAY 不带注释

json - Jackson 支持 java 8 stream() 吗?

java - Web 启用 Java 控制台应用程序的 JMX bean

java - hibernate :引起:java.lang.ClassCastException:[Ljava.lang.Object;无法转换为 <package.Class>

java - @GenerateValue(策略= GenerationType.AUTO): MySQL and generated IDs shared between tables?

java - 使用 Spring 包装类相对于 Quartz 调度程序库的优势

spring - NoSuchMethodError : org. jboss.logging.Logger.debugf

java - Spring Data Neo4j "No property get found for type"异常

java - LocalDateTime - 使用 LocalDateTime.parse 进行反序列化