我为我的springboot应用程序配置了自己的objectmapper,假设objectmapper如下所示(简化):
@Bean
@Primary
public ObjectMapper objectMapper() {
return new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
自从 ObjectMapper
是一个 singleton
,我的所有rest控制器都使用相同的objectmapper。但是,有些控制器我想忽略null值,但是我想保留控制器的其余部分来发送null值响应。
有办法配置吗?所以最好的结果是我可以这样配置:
控制器a、b、c->objectmapper x(忽略空值)
控制器d->objectmapper y(忽略空值)
默认值(所有其他控制器)->objectmapper z(返回空值)
要求说明:
我无法更改pojo,因为它是自动生成的,我不想为此更新codegen库或mustache模板。
具体内容谈判不是一种选择
2条答案
按热度按时间vqlkdk9b1#
除了你的
ObjectMapper
注有@Primary
您可以配置更多ObjectMapper
你可以选择豆子的名字。然后可以在控制器中引用它们,如下所示:
只是给予
@Autowired
将注入主ObjectMapper
.给
@Autowired
一起@Qualifier("anyName")
将注入ObjectMapper
配置为@Bean("anyName")
```@Autowired
private ObjectMapper objectMapper;
@Autowired
@Qualifier("mySpecialObjectMapper")
private ObjectMapper otherObjectMapper;
e0bqpujr2#
也许您只需要使用@jsoninclude(jsoninclude.include.non\u null)。尝试在响应模型级别修复它。