RestTemplate
' getForObject
方法忽略了该类的@JsonIgnoreProperties(ignoreUnknown = true)
注释。
E.g。对
@JsonIgnoreProperties(ignoreUnknown = true)
public class Stock extends AbstractSObject
{
// fields
}
和
RestTemplate rest = new RestTemplate();
Stock s = rest.getForObject("address", Stock.class);
我收到以下错误
无法读取JSON:无法识别的字段" SomeField" (类 sandbox.Stock),未标记为可忽略的
答案 0 :(得分:15)
Spring RestTemplate
期待com.fasterxml.jackson.annotation.JsonIgnoreProperties
。
如果您将旧版软件包中的org.codehaus.jackson.annotate.JsonIgnoreProperties
注释用于其他目的,则可以手动设置RestTemplate
以忽略未知属性:
RestTemplate rest = new RestTemplate();
ObjectMapper lax = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
MappingJackson2HttpMessageConverter c = new MappingJackson2HttpMessageConverter();
c.setObjectMapper(lax);
List<HttpMessageConverter<?>> list = new ArrayList<HttpMessageConverter<?>>();
list.add(c);
rest.setMessageConverters(list);