我是一个没有Spring Boot的项目,但它使用了一些弹簧模块,例如"弹簧数据"和#34;弹簧数据休息"。
我对java.time。*字段的序列化存在一些问题。 我找到了一些像this这样的教程,但即使我添加了以下依赖项
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>
以及我的RepositoryRestConfigurerAdapter中的以下代码
@Component public class CvlRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setDefaultPageSize(75);
config.setReturnBodyForPutAndPost(Boolean.TRUE);
}
@Override
public void configureJacksonObjectMapper(ObjectMapper objectMapper) {
super.configureJacksonObjectMapper(objectMapper);
objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false);
}
}
关于java.time字段的实际响应类似于以下
&#34; rateDate&#34; :{ &#34;一年&#34; :2017年, &#34;一个月&#34; :&#34; FEBRUARY&#34;, &#34;请将dayOfMonth&#34; :14, &#34;一周中的某天&#34; :&#34;星期二&#34;, &#34;时代&#34; :&#34; CE&#34;, &#34; DAYOFYEAR&#34; :45, &#34; leapYear&#34; :假的, &#34; monthValue&#34; :2, &#34;年表&#34; :{ &#34; ID&#34; :&#34; ISO&#34;, &#34; calendarType&#34; :&#34; iso8601&#34; }
我做错了什么?我忘了什么?
答案 0 :(得分:0)
这是我的适配器。现在它正在工作
@Component
public class CvlRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setDefaultPageSize(75);
config.setReturnBodyForPutAndPost(Boolean.TRUE);
}
@Override
public void configureJacksonObjectMapper(ObjectMapper objectMapper) {
super.configureJacksonObjectMapper(objectMapper);
objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false);
SimpleModule sm = new SimpleModule("jsr310module");
sm.addSerializer(LocalDate.class,new LocalDateSerializer(DateTimeFormatter.ISO_DATE));
sm.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_DATE));
sm.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ISO_DATE_TIME));
sm.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ISO_DATE_TIME));
objectMapper.registerModule(sm);
}
}
我只需要检查时区(ZonedDateTime字段)和编码(似乎是UTF-8是默认值),一切都会好的。 希望对别人有用