मैं नीचे दिए गए JSON को List<Bill
>जैक्सन जेसन लाइब्रेरी का उपयोग करके जावा ऑब्जेक्ट को deserialize/मैप करने का प्रयास कर रहा हूं। (इस json जैक्सन, Iam द्वारा उत्पन्न की गई संक्षिप्तता के लिए उस टुकड़े को छोड़ते हुए)जैक्सन जेएसओएन + जावा जेनरिक
{"bills":[{"amount":"13","billId":"billid3"}]}
यहाँ मेरी रूपांतरण विधि है:
private static void convert(){
String jsonBill = "{\"bills\":[{\"amount\":\"13\",\"billId\":\"billid3\"}]}";
ObjectMapper mapper = new ObjectMapper();
List<Bill> bills = null;
try {
bills = mapper.readValue(jsonBill, new TypeReference<List<Bill>>() { });
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("bills = " + bills.size());
}
विधेयक इकाई के नीचे है:
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS)
public class Bill {
private String amount;
private String billId;
public String getBillId() {
return billId;
}
public void setBillId(String billId) {
this.billId = billId;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
}
और मैं यह त्रुटि प्राप्त करें:
**org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.List out of START_OBJECT token
at [Source: [email protected]; line: 1, column: 1]**
at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:160)
at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:194)
at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:103)
at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:93)
at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:25)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1980)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1278)
@ModelAttribute("bills")
@RequestMapping(value = "/", method = RequestMethod.GET)
public List<Bill> fetchBills() throws IOException {
Bill bill = new Bill();
bill.setAmount("13");
bill.setBillId("billid3");
List<Bill> bills = new ArrayList<Bill>();
bills.add(bill);
return bills;
}
मुझे लगता है मैं कुछ स्पष्ट याद आ रही है .. लेकिन यकीन नहीं क्या यह .. कोई भी विचार है: ४६५१०४०३२१० यहाँ मेरी सरलीकृत spring3 नियंत्रक जो मैं/p json रिटर्न (जैक्सन मानचित्रण के साथ डिफ़ॉल्ट दृश्य के रूप में विन्यस्त) है ?
उपयोग कर रहा हूँ आप billLst सूची के लिए विशेषता 'बिल' मैप करने के लिए यह कह नहीं कर रहे हैं की कोशिश करो। मैंने इसे कभी भी नहीं किया है (स्प्रिंग 3.0 इसे स्वचालित रूप से करता है), लेकिन मैं विशेषता 'बिल' का संदर्भ देखने की अपेक्षा करता हूं। – sioked
हां वह मेरे हिस्से पर एक टाइपो था - मेरी पोस्ट अपडेट की गई। धन्यवाद। लेकिन समस्या अभी भी मौजूद है .. – Ravi