我使用@JsonIgnoreProperties来忽略我的其余API返回的额外属性。
虽然这适用于ObjectMapper,但它不能用于RestTemplate上的exchange方法。当服务器返回POJO中找不到的属性时,我仍然会收到UnrecognizedPropertyException。
有没有办法为交换方法提供支持?
这是我的代码(我使用com.fasterxml.jackson.annotation.JsonIgnoreProperties)
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyObject {
private String id = "";
public MyObject(String id) {
this.id = id;
}
// .... getter and setter
}
...
ResponseEntity<MyObject> restResponse =
restTemplate.exchange(builder.build().encode().toUri(), HttpMethod.GET, request, MyObject.class);
答案 0 :(得分:0)
您可能正在使用org.codehaus.jackson.annotate.JsonIgnoreProperties.
您必须将com.fasterxml.jackson.annotation.JsonIgnoreProperties
与RestTemplate
一起使用。
或者您也可以将restTemplate
与MappingJackson2HttpMessageConverter
配置为忽略未知属性。类似的东西:
ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(mapper);
restTemplate.getMessageConverters().add(converter);