我知道,关于这个问题有几个类似的问题,但我找不到任何令人满意的解决方案。这就是为什么我想在这里重新打开它。
- 我想将
SpringBoot
中Dates(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/