2011-08-04 23 views
15

Yanıt gövdesinde bir JSON nesnesini döndüren bir web hizmetini çağırmak için Apache http sınıflarını kullanıyorum. JSON nesnesine eşlenmiş bir Jackson ek açıklamalı java sınıfım var. Bunu bir şeyler yapmak istiyorum, ancak google doğru boilerplate'i açmadı.JSON nesnesini, Jackson ek açıklamalarını kullanarak HttpResponse'den nasıl ayırıyorsunuz?

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

yardımcı olur: http://wiki.fasterxml.com/JacksonInFiveMinutes. –

+0

bu HttpGet ve HttpResponse asenkron çağrı mıdır, değil mi? : D – gumuruh

cevap

36

Sen kullanmak zorunda ObjectMapper:

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

(Bir nesne mapper örneği yeniden kullanılabilir, böylece her seri kaldırma için yeni bir tane oluşturmak gerekmez) belgelerine Okuma

+0

Ah, teşekkürler. Jackson doktoru açık değildi. – MebAlone

+0

Tüm Jackson metotları 'readValue (source, type)' biçimindedir, dolayısıyla desen takip eder. Ve IDE kullanırken, otomatik tamamlama pek çok olasılık gösterilmesine yardımcı olur (eğer değilse, javadocs'u kontrol etmelisiniz) – StaxMan

İlgili konular