2012-02-20 12 views
8

के रूप में चिह्नित नहीं है क्या कोई मुझे यह जानने में मदद कर सकता है कि क्या जोड़ा जाना चाहिए?JSON: अपरिचित फ़ील्ड "मान" (<objectClass>), अनजान

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; 

फिर भी यह "सर्वलेट appServlet के लिए Servlet.service() अपवाद फेंक दिया हो जाता है

org.codehaus.jackson.map .exc.UnrecognizedPropertyException: अपरिचित फ़ील्ड "मान"(), अनजान के रूप में चिह्नित नहीं है "

उत्तर

9

अपने नक्शाकार config

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

को यह जोड़ने आप RestTemplate का उपयोग करते हैं आप अंतर्निहित जैक्सन नक्शाकार कॉन्फ़िगर करना होगा प्रयास करें। आप इसे अपने मैपर को कॉन्फ़िगर करके और कनवर्टर में सेट करके कर सकते हैं। नीचे कोड देखें।

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

+0

उत्तर के लिए धन्यवाद। वैसे, मैं ऑब्जेक्टमैपर का उपयोग नहीं कर रहा हूं, इसके बजाय हम RestTemplate का उपयोग करते हैं। – exception01

+0

RestTemplate का उपयोग करने के लिए अपडेट किया गया –

संबंधित मुद्दे