मैं निम्नलिखित JSON के साथ संग्रह लागू करने के लिए विफल रहता है।deserializing एक वर्ग जैक्सन
public class ItemList {
@JsonProperty("item")
List<Item> items;
// Getters, setters & co.
// ...
}
सब कुछ इस बात पर निर्भर अच्छी तरह से काम कर रहा है:
तो मैं deserialize करने के लिए है कि एक वर्ग बनाया है।
अब, मेरे जीवन को कहीं और आसान बनाने के लिए, मैंने फैसला किया कि आइटमलिस्ट ऑब्जेक्ट पर पुन: प्रयास करने में सक्षम होना अच्छा होगा और इसे संग्रह इंटरफ़ेस को लागू करने दें।
तो मूल रूप से मेरी कक्षा में बदल गया:
public class ItemList implements Collection<Item>, Iterable<Item> {
@JsonProperty("item")
List<Item> items;
// Getters, setters & co.
// Generated all method delegates to items. For instance:
public Item get(int position) {
return items.get(position);
}
}
कार्यान्वयन ठीक से और अच्छी तरह से काम करता है। हालांकि, deserialization अब विफल रहता है।
ऐसा लगता है कि जैक्सन भ्रमित हो रही है:
com.fasterxml.jackson.databind.JsonMappingException: START_OBJECT टोकन से बाहर com.example.ItemList के कहने deserialize नहीं सकते हैं
मेरे पास है @JsonDeserialize(as=ItemList.class)
जोड़ने की कोशिश की लेकिन यह चाल नहीं हुई।
जाने का क्या तरीका है?
मैं बहुत यकीन है कि http://stackoverflow.com/users/22656/jon-skeet इस जवाब देने में सक्षम हो जाएगा हूँ:
यहाँ कोड है। इसके अतिरिक्त, आप http://stackoverflow.com/a/21279016/1382251 में कुछ उपयोगी जानकारी पा सकते हैं। –
हालांकि यह एक अच्छा सवाल है, यदि आप चाहते हैं कि पुन: प्रयास करना है, तो अपनी कक्षा को केवल पुन: प्रयोज्य बनाने के बजाय संग्रह क्यों बनाएं? – chrylis
@chrylis: ताकि मैं (आइटम टी: आइटमलिस्ट) ' –