Necesito convertir una determinada cadena JSON en un objeto Java. Estoy usando Jackson para el manejo de JSON. No tengo control sobre la entrada JSON (leí desde un servicio web). Esta es mi entrada JSON:
{"wrapper":[{"id":"13","name":"Fred"}]}
Aquí hay un caso de uso simplificado:
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);
}
Mi clase de entidad es:
public Class Student {
private String name;
private String id;
//getters & setters for name & id here
}
Mi clase Wrapper es básicamente un objeto contenedor para obtener mi lista de estudiantes:
public Class Wrapper {
private List<Student> students;
//getters & setters here
}
Sigo recibiendo este error y vuelve el "contenedor" null
. No estoy seguro de lo que falta. ¿Puede alguien ayudar, por favor?
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>>(){});
y luegoStudent myStudent = dummy.get("wrapper");