我有一个带有spring mvc的项目,我想从MapDeserializer全局调用方法“ setIgnorableProperties”,但我不知道如何从ObjectMapper中获得此类,您能帮我吗?谢谢。
我看到了,像这样:
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
mapDeserializer.getContentType();
converters.forEach(httpMessageConverter -> {
if (httpMessageConverter instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter converter = (MappingJackson2HttpMessageConverter) httpMessageConverter;
ObjectMapper mapper = converter.getObjectMapper();
MapDeserializer mapDes = mapper.(What I have to invoke?) ;
mapDes.setIgnorableProperties({"@id", "@ref"});
}
});
}
最佳答案
该属性并不意味着可以直接配置。您将需要对@JsonIgnoreProperties
值的属性使用Map
批注。
您可以通过以下方式创建便捷注释:
@Retention(RetentionPolicy.RUNTIME) // IMPORTANT
@JacksonAnnotationsInside
@JsonIgnoreProperties({ "@id", "@ref" })
public @interface MapIgnorals
然后像这样使用:
public class Stuff {
@MapIgnorals public Map<String,Object> values;
}