spring-boot - 自定义对象映射器在springboot中不生效
问题描述
我有一个springboot应用程序。我正在尝试用自定义字符串(“NA”)替换空值。因此,我配置了一个带有自定义序列化程序提供程序的对象映射器,该提供程序又具有一个自定义空值序列化程序。您可以检查下面的代码。
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper jacksonObjectMapper() {
return new CustomObjectMapper();
}
@Bean
public SerializationConfig serializationConfig() {
return jacksonObjectMapper().getSerializationConfig();
}
}
class CustomObjectMapper extends ObjectMapper {
CustomObjectMapper() {
super();
DefaultSerializerProvider.Impl serializerProvider = new DefaultSerializerProvider.Impl();
serializerProvider.setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeString("NA");
}
});
this.setSerializerProvider(serializerProvider);
}
}
现在的问题是,即使创建了这些 bean,自定义的 null 值序列化器仍然没有生效。在响应中,我仍然看到很多空值。还有什么我在这里想念的吗?
解决方案
推荐阅读
- python - Pytest:如何在测试之间共享数据库状态
- swift - 定位服务在我的 macOS 应用程序中不起作用
- docker - FROM...AS 在 Dockerfile 中没有按我的预期工作
- doctrine-orm - 如何更改创建实体的默认位置?(php bin/控制台制作:实体)
- timestamp - 如何在grafana中将字符串时间戳列转换为时间戳
- tensorflow - 在 tensorflow 或 keras 中通过标准 mobileNet、VGG-16 或 AlexNet 从头开始训练 cifar 日期集的图像大小问题
- android - Android 应用程序中 webRTC 通话期间的录音
- android - RecyclerView 展开/折叠太快
- c# - 使用浏览器浏览服务器上的本地文件夹。有点像使用 file://
- azure - 通过 Powershell 在 EA 门户中将服务主体激活为帐户所有者?