34

I'm using the Apache http classes to call a web service that returns a JSON object in the response body. I have a Jackson annotated java class mapped to the JSON object. I want to do something this, but google hasn't turned up the correct boilerplate.

    String url = hostName + uri;
    HttpGet httpGet = new HttpGet(url);
    HttpResponse response = httpclient.execute(httpGet);
    MyObject myObject = (MyObject)response.getEntity().getContent();
skaffman
  • 390,936
  • 96
  • 800
  • 764
MebAlone
  • 537
  • 1
  • 5
  • 11

1 Answers1

73

You have to use the ObjectMapper:

MyObject myObject = objectMapper.readValue(response.getEntity().getContent(), MyObject.class);

(An object mapper instance can be reused, so no need to create a new one for each deserialization)

Eric
  • 6,433
  • 5
  • 40
  • 62
Bozho
  • 572,413
  • 138
  • 1,043
  • 1,132
  • All Jackson methods have form 'readValue(source, type)', so it kind of follows pattern. And when using IDE, auto-completion helps a lot showing possibilities (if not, need to check javadocs) – StaxMan Aug 05 '11 at 23:29