Nab*_*ham 3 java spring jackson
要序列化反序列化对象,我使用Jackson作为流程
@JsonSerialize(using = LocalDateSerializer.class)
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate openingDate
Run Code Online (Sandbox Code Playgroud)
如何将其设置为全局默认值,所以不必将其添加到每个属性中?
使用XML配置。
使用 Spring Boot,您可以通过注册新的Module.
@Configuration
public class AppConfig {
@Bean
public Module module() {
SimpleModule module = new SimpleModule("Module", new Version(1, 0, 0, null, null, null));
module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
return module;
}
}
Run Code Online (Sandbox Code Playgroud)
如此处文档所述
Jackson 1.7 添加了通过模块接口注册序列化器和反序列化的功能。这是添加自定义序列化程序的推荐方法——所有序列化程序都被视为“通用”,因为除非找到更具体的绑定,否则它们用于子类型。
和这里:
任何类型的 bean
com.fasterxml.jackson.databind.Module都会自动注册到自动配置中Jackson2ObjectMapperBuilder,并应用于ObjectMapper它创建的任何实例。当您向应用程序添加新功能时,这提供了一种贡献自定义模块的全局机制。
如果使用的是基于Java的配置,则可以创建扩展WebMvcConfigurerAdapter的配置类并执行以下操作:
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
final MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
converter.setObjectMapper(objectMapper);
converters.add(converter);
super.configureMessageConverters(converters);
}
Run Code Online (Sandbox Code Playgroud)
在这里,您可以根据需要配置ObjectMapper并将其设置为转换器。
| 归档时间: |
|
| 查看次数: |
13979 次 |
| 最近记录: |