RestTemplate忽略@JsonIgnoreProperties(ignoreUnknown = true)注释

ipa*_*lic 7 rest spring jackson deserialization

RestTemplategetForObject方法忽略@JsonIgnoreProperties(ignoreUnknown = true)了类的注释.

例如

@JsonIgnoreProperties(ignoreUnknown = true)
public class Stock extends AbstractSObject
{
  // fields
}
Run Code Online (Sandbox Code Playgroud)

RestTemplate rest = new RestTemplate();
Stock s = rest.getForObject("address", Stock.class);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

无法读取JSON:无法识别的字段"SomeField"(类sandbox.Stock),未标记为可忽略

ipa*_*lic 16

春天的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);

MappingJacksonHttpMessageConverter c = new MappingJacksonHttpMessageConverter();
c.setObjectMapper(lax);

List<HttpMessageConverter<?>> list = new ArrayList<>();
list.add(c);

rest.setMessageConverters(list);
Run Code Online (Sandbox Code Playgroud)