title: Parse a JSON response as an object
body: <p>Good evening,<br>
  I am a newbie in web services and i just want to write a simple client that simply gets responses from REST calls.<br>
  I downloaded and added <code>jersey-bundle-1.17.1.jar</code> to my build path and i found a working piece of code that makes a REST call to a url and returns a response as a <code>String</code>.  </p>
  
  <pre><code>import javax.ws.rs.core.MediaType;
  
  import com.sun.jersey.api.client.Client;
  import com.sun.jersey.api.client.ClientResponse;
  import com.sun.jersey.api.client.WebResource;
  
  public class TestJerseyClient {
      public static void main(String[] args) {
          try {
              Client client = Client.create();
              WebResource webResource = client
                      .resource("http://path/to/service");
  
              ClientResponse response = webResource
                      .accept(MediaType.APPLICATION_JSON)
                      .get(ClientResponse.class);
  
              if (response.getStatus() != 200)
                  throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
  
              String output = response.getEntity(String.class);
  
              System.out.println("Output from Server .... \n");
              System.out.println(output);
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  
  <p>But i don't want to do string manipulations to get the parts of the response that im interested in.  </p>
  
  <p>I would prefer a more structured approach, like getting an <code>Object</code> instead of a string<br>
  (a <code>JSON</code> Object, a <code>Map&lt;K,V&gt;</code> Object, etc...)  </p>
  
  <p><hr>
  TRY#1 - <a href="http://plaincode.blogspot.gr/2011/07/java-jersey-rest-client-parse-json-from.html"><code>Map&lt;K,V&gt;</code></a>  </p>
  
  <pre><code>Sep 15, 2013 2:46:13 AM com.sun.jersey.api.client.ClientResponse getEntity
  SEVERE: A message body reader for Java class java.util.Map, and Java type java.util.Map&lt;java.lang.String, java.lang.Object&gt;, and MIME media type application/json; charset=UTF-8 was not found
  Sep 15, 2013 2:46:13 AM com.sun.jersey.api.client.ClientResponse getEntity
  SEVERE: The registered message body readers compatible with the MIME media type are:
  application/json; charset=UTF-8 -&gt;
    com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
    com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
    com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
  */* -&gt;
    com.sun.jersey.core.impl.provider.entity.FormProvider
    com.sun.jersey.core.impl.provider.entity.StringProvider
    com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
    com.sun.jersey.core.impl.provider.entity.FileProvider
    com.sun.jersey.core.impl.provider.entity.InputStreamProvider
    com.sun.jersey.core.impl.provider.entity.DataSourceProvider
    com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
    com.sun.jersey.core.impl.provider.entity.ReaderProvider
    com.sun.jersey.core.impl.provider.entity.DocumentProvider
    com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
    com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
    com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
    com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
    com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
    com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
    com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
    com.sun.jersey.core.impl.provider.entity.EntityHolderReader
    com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
    com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
  
  com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class java.util.Map, and Java type java.util.Map&lt;java.lang.String, java.lang.Object&gt;, and MIME media type application/json; charset=UTF-8 was not found
      at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:561)
      at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:535)
      at com.sun.jersey.api.client.WebResource.handle(WebResource.java:696)
      at com.sun.jersey.api.client.WebResource.access$300(WebResource.java:74)
      at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:512)
      at rest.TestJerseyClientAdvanced.main(TestJerseyClientAdvanced.java:36)
  </code></pre>