2011-08-04 15 views
15

私はApache HTTPクラスを使用して、レスポンス本文にJSONオブジェクトを返すWebサービスを呼び出します。 JSONオブジェクトにマッピングされたジャクソン注釈付きJavaクラスがあります。私はこれを何かしたいが、Googleは正しい定型文を立てていない。Jackson注釈を使用してHttpResponseからJSONオブジェクトをどのように非直列化しますか?

あなたが ObjectMapperを使用する必要が
String url = hostName + uri; 
    HttpGet httpGet = new HttpGet(url); 
    HttpResponse response = httpclient.execute(httpGet); 
    MyObject myObject = (MyObject)response.getEntity().getContent(); 
+0

ドキュメントを読むことができます: http://wiki.fasterxml.com/JacksonInFiveMinutes。 –

+0

はこのHttpGetであり、HttpResponseは非同期呼び出しかどうかですか? :D – gumuruh

答えて

36

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

は(オブジェクトマッパーのインスタンスを再利用することができますので、それぞれの直列化復元のための新しいものを作成する必要はありません)

+0

ああ、ありがとう。ジャクソン医師からはっきりしていなかった。 – MebAlone

+0

すべてのJacksonメソッドは 'readValue(source、type)'という形式を取っています。 IDEを使用している場合、自動補完は可能性を示してくれます(そうでない場合は、javadocsをチェックする必要があります) – StaxMan