我知道,关于这个问题,有几个类似的问题,但是我找不到任何令人满意的解决方案。那就是为什么我想在这里重新打开它。
JSON serialization
中Dates (java.util)
的{{1}}设置为SpringBoot
格式。我尝试过:
添加依赖:
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'
注释,因为这些类是由旧系统生成的,而我现在无法访问。因此,我寻求一个全局解决方案。无论如何,全球性的灵魂似乎是合乎逻辑的。
希望有人可以提供帮助。 预先感谢您的任何提示。
亲切问候
格雷戈尔
答案 0 :(得分:0)
您可以使用序列化来实现。只需将此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);
}
}
答案 1 :(得分:0)
@Bean
@Primary
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.build();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}