2012-02-20 8 views
8

¿Alguien me puede ayudar a descubrir qué hay que agregar?JSON: campo no reconocido "valor" (<objectClass>), no marcado como ignorable

JSON:

{"value":{"keyword":"better","correct":"","page":0,"size":10,"cost":51,"total":1107}} 

clase Object

@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; 

Todavía se pone el "Servlet.service() para servlet appServlet lanzó excepción

org.codehaus.jackson.map .exc.UnrecognizedPropertyException: Campo no reconocido "valor"(), no marcado como ignorable "

Respuesta

9

Trate de añadir esto a su configuración asignador

mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); 
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true); 

Si utiliza RestTemplate tendrá que configurar el asignador de Jackson subyacente. Puede hacer esto configurando su asignador y configurándolo en el convertidor. Vea el código a continuación.

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); 

ver aquí para más detalles: https://jira.springsource.org/browse/ANDROID-45

+0

Gracias por la respuesta. Por cierto, no estoy usando ObjectMapper, en su lugar usamos RestTemplate. – exception01

+0

Actualizado para usar RestTemplate –

Cuestiones relacionadas