有人能帮我弄清楚需要添加什么吗?
JSON:
{"value":{"keyword":"better","correct":"","page":0,"size":10,"cost":51,"total":1107}}
对象类
@JsonAutoDetect
@JsonSerialize(include = Inclusion.NON_NULL)
@JsonRootName(value = "value")
public class Response {
private int page;
private int size;
private int total;
private int cost;
private int result;
private String keyword;
private String correct;
尽管如此,它还是得到了Servlet应用程序的"Servlet.service()"Servlet抛出异常
org.codehaus.ackson.map.exc.UnrecognizedPropertyException:无法识别的字段"value"(),未标记为"可忽略"
尝试将其添加到映射器配置中
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);
如果使用RestTemplate,则需要配置底层的jackson映射程序。您可以通过配置映射器并在转换器中进行设置来完成此操作。请参阅下面的代码。
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);
MappingJacksonHttpMessageConverter messageConverter = new MappingJacksonHttpMessageConverter();
messageConverter.setObjectMapper(mapper);
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(messageConverter);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);
请参阅此处了解更多详细信息:https://jira.springsource.org/browse/ANDROID-45