Escribo un cliente que realiza una solicitud GET al servicio REST utilizando la API de Jersey Client. La respuesta es una colección de objetos, y debo deserializarla. Aquí está mi código:Cómo deserializar la respuesta JSON del servicio REST de Jersey a la colección de objetos java
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING,
Boolean.TRUE);
Client client = Client.create(clientConfig);
WebResource r = client
.resource("http://localhost:8080/rest/gadgets");
y la clase que representa "gadget" modelo (anotado con @XmlRootElement para el procesamiento de JAXB):
@XmlRootElement
public class Gadget {
private String url;
private String title;
private String name;
public Gadget() {
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Si la respuesta sería simplemente copia Gadget, no una colección, la pude parecía como
Gadget result = r.get(Gadget.class);
Pero JSON en respuesta contiene una lista de aparatos, y tengo que leerlo a la colección de java. Algo así como
List<Gadget> result = r.get(List<Gadget>.class);
no se compila. ¿Puede alguien ayudarme aquí? No quiero usar libs adicionales, creo que esto se puede hacer usando jersey-json.jar y JAXB, pero no sé cómo.