Search code examples
javajsonutility

Receive data from a webservice using REST API


I need to get specific data from this API http://countryapi.gear.host/v1/Country/getCountries?pName=Australia, convert it to String and write out on the console. I want to get data only for Australia. How can I get data in String format only for Name and Alpha2Code like this: Australia, AU? I was trying to use EntityUtils.toString(response) but it doesn't work.

This is my code:

public class Client {

public static void main(String[] args) throws ClientProtocolException, IOException {

    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet("http://countryapi.gear.host/v1/Country/getCountries?pName=Australia");
    request.addHeader("accept", "application/json");
    HttpResponse response = client.execute(request);
    HttpEntity entity = response.getEntity();
    InputStream stream = entity.getContent();
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
    String line = reader.readLine();
    System.out.println(line);
}
}

The code actually return JSON for Australia, like this:

enter image description here


Solution

  • Try something like this:

    Gson gson = new Gson();
    JsonObject result = gson.fromJson(line, JsonObject.class);
    JsonArray response = result.getAsJsonArray("Response");
    Country country = gson.fromJson(response, Country.class);