2011-08-25 28 views
5

मैं एक संपत्तिखाली सरणी/सूची deserialise कैसे?

@JsonProperty 
private Map<String, String> parameters = new HashMap<String, String>(); 

जब मैं सब कुछ ठीक काम करता है जब तक JSON में पैरामीटर फ़ील्ड रिक्त है, यानी objectMapper.readValue (...) को फोन करके deserialise करने की कोशिश की है।

"parameters":[] 

मैं इस अपवाद मिलता है ...

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token 

मैं खाली सूची कैसे निपटेंगे? और नहीं, मेरे पास JSON पर आने पर कोई नियंत्रण नहीं है।

धन्यवाद।

उत्तर

4

आप केवल एक HashMap{} से बाहर, नहीं [] प्राप्त कर सकते हैं (आप हालांकि एक ArrayList इसे से बाहर प्राप्त करने में सक्षम होना चाहिए)।

0

क्रिस द्वारा वर्णित अनुसार, आपका JSON गलत है।

लेकिन यदि आपको वास्तव में इसका समर्थन करने की आवश्यकता है, तो आप कस्टम deserializer बनाने (और करने की आवश्यकता) कर सकते हैं, और घोषित मानचित्र प्रकार के लिए पंजीकरण कर सकते हैं - कस्टम deserializer फिर सरणी स्वीकार कर सकते हैं (कम से कम खाली, अगर वे केवल हैं जिन प्रकारों का सामना किया जा सकता है)।

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