मुझे एक निश्चित JSON स्ट्रिंग को जावा ऑब्जेक्ट में बदलने की आवश्यकता है। मैं JSON हैंडलिंग के लिए जैक्सन का उपयोग कर रहा हूं। मुझे JSON के इनपुट पर कोई नियंत्रण नहीं है (मैं वेब सेवा से पढ़ता हूं)। यह मेरा इनपुट JSON है:
{"wrapper":[{"id":"13","name":"Fred"}]}
यहाँ एक सरलीकृत उपयोग मामला है:
private void tryReading() {
String jsonStr = "{\"wrapper\"\:[{\"id\":\"13\",\"name\":\"Fred\"}]}";
ObjectMapper mapper = new ObjectMapper();
Wrapper wrapper = null;
try {
wrapper = mapper.readValue(jsonStr , Wrapper.class);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("wrapper = " + wrapper);
}
मेरी इकाई वर्ग है:
public Class Student {
private String name;
private String id;
//getters & setters for name & id here
}
मेरा रैपर क्लास मूल रूप से छात्रों की मेरी सूची प्राप्त करने के लिए एक कंटेनर वस्तु है:
public Class Wrapper {
private List<Student> students;
//getters & setters here
}
मुझे यह त्रुटि और "रैपर" रिटर्न मिलता रहता है null
। मुझे यकीन नहीं है कि क्या गायब है। क्या कोई कृपया मदद कर सकता है?
org.codehaus.jackson.map.exc.UnrecognizedPropertyException:
Unrecognized field "wrapper" (Class Wrapper), not marked as ignorable
at [Source: java.io.StringReader@1198891; line: 1, column: 13]
(through reference chain: Wrapper["wrapper"])
at org.codehaus.jackson.map.exc.UnrecognizedPropertyException
.from(UnrecognizedPropertyException.java:53)
Map dummy<String,Student> = myClientResponse.getEntity(new GenericType<Map<String, Student>>(){});
और फिरStudent myStudent = dummy.get("wrapper");