web-dev-qa-db-ja.com

Jacksonアノテーションを使用して、HttpResponseからJSONオブジェクトをどのようにデシリアライズしますか?

Apache httpクラスを使用して、応答本文でJSONオブジェクトを返すWebサービスを呼び出しています。ジャクソンアノテーション付きのJavaクラスがJSONオブジェクトにマップされています。これを実行したいのですが、Googleが正しいボイラープレートを表示していません。

    String url = hostName + uri;
    HttpGet httpGet = new HttpGet(url);
    HttpResponse response = httpclient.execute(httpGet);
    MyObject myObject = (MyObject)response.getEntity().getContent();
29
MebAlone

ObjectMapper を使用する必要があります:

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

(オブジェクトマッパーインスタンスは再利用できるため、逆シリアル化ごとに新しいインスタンスを作成する必要はありません)

50
Bozho