JSON:未被标记为可忽略的“值”(<objectClass>)的无法识别字段。

8

我可以帮你理解需要添加什么。

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.service() for servlet appServlet threw exception”错误

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 未能识别的属性“value”(),没有标记为可忽略字段

1个回答

9
尝试在您的映射器配置中添加以下内容。
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


谢谢回复。顺便说一下,我没有使用ObjectMapper,而是使用RestTemplate。 - iamtheexp01

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接