36

I want to know how I can extract a List<String> as response from the jersey-2.0 client.

I have already tried this,

List<String> list = client
                      .target(url)
                      .request(MediaType.APPLICATION_JSON)
                      .get(new GenericType<List<String>>(){});

But, the above code is not working. It is not returning the expected List<String> but, a null value instead.

user2004685
  • 9,548
  • 5
  • 37
  • 54
Saurabh
  • 7,525
  • 4
  • 45
  • 46

3 Answers3

78

You can get your service response as Response class object and, then parse this object using readEntity(...) method.

Here is a quick code snippet:

List<String> list = client
                      .target(url)
                      .request(MediaType.APPLICATION_JSON)
                      .get(Response.class)
                      .readEntity(new GenericType<List<String>>() {});
/* Do something with the list object */
user2004685
  • 9,548
  • 5
  • 37
  • 54
1
String listString= serviceResponse.readEntity(String.class);
Gson gson=new Gson();
Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = gson.fromJson(listString, type);

Get response string and then convert to List by using gson library

Saurabh
  • 7,525
  • 4
  • 45
  • 46
  • 1
    This answer turned up in the low quality review queue, presumably because you don't provide any explanation of the code. If this code answers the question, consider adding adding some text explaining the code in your answer. This way, you are far more likely to get more upvotes — and help the questioner learn something new. – lmo Sep 07 '16 at 22:12
-1

1) Take your Response in the then parse the Response Object using readEntity() method.

List<String> list = client.target(url).
request(MediaType.APPLICATION_JSON).get(Response.class).readEntity(new GenericType<List<String>>() {
});