java – Spring Boot – 自定义JSON序列化[复制]
作者:互联网
参见英文答案 > Jackson custom date serializer 1个
我通常使用mixins在使用Jackson Library时执行自定义序列化和反序列化. Spring Boot应用程序中的My RestController具有类似于下面列出的方法.我猜Spring Boot使用Jackson将VerifyAccountResponse序列化为字符串.但是,当将我们的日历/日期对象转换为字符串时,它会将其转换为长值.我可以使用自定义序列化程序将它们转换为适当的格式.但是,我必须在序列化后将返回类型更改为对象.有没有办法保留相同的签名,并将自定义序列化程序添加到Spring Boot执行的默认序列化.
@RequestMapping(value ="verifyAccount", method = RequestMethod.POST, produces=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<VerifyAccountResponse> verifyAccount(@RequestBody VerifyAccountRequest request) {
VerifyAccountResponse response = service.verifyAccount(request);
return new ResponseEntity<VerifyAccountResponse>(response, HttpStatus.OK);
}
编辑:
Updated the below based on the answers , but mixin doesn't seem to take effect -
@Bean
public Jackson2ObjectMapperBuilder objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.mixIn(ConnectStatus.class, com.datacast.service.util.DateFormatSerializerMixin.class);
return builder;
}
编辑2:
我创建了一个简单的弹簧启动项目来测试它,这很好.但是当我在我的大项目中使用这种方法时,日期转换不会发生.有没有什么可以覆盖Jackson2ObjectMapperBuilder?
解决方法:
您可以通过多种方式在Spring启动应用程序中自定义Jackson序列化程序.请考虑在弹簧启动参考指南中查看有关jackson的文档:
您可以使用Jackson2ObjectMapperBuilder配置自定义序列化程序.
标签:java,spring-mvc,spring,jackson,spring-boot-2 来源: https://codeday.me/bug/20190717/1487682.html