2011-08-04 37 views
15

Tôi đang sử dụng các lớp http Apache để gọi một dịch vụ web trả về một đối tượng JSON trong nội dung phản hồi. Tôi có một lớp java có chú giải Jackson được ánh xạ tới đối tượng JSON. Tôi muốn làm một cái gì đó này, nhưng google đã không bật lên boilerplate chính xác.Làm thế nào để deserialize JSON đối tượng từ HttpResponse sử dụng chú thích Jackson?

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

Đọc tài liệu hướng dẫn giúp: http://wiki.fasterxml.com/JacksonInFiveMinutes. –

+0

là HttpGet và HttpResponse này có phải là cuộc gọi không đồng bộ hay không? : D – gumuruh

Trả lời

36

Bạn phải sử dụng các ObjectMapper:

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

(Một trường hợp đối tượng mapper có thể được tái sử dụng, vì vậy không cần phải tạo ra một cái mới cho mỗi deserialization)

+0

Ah, cảm ơn. Không rõ ràng từ Jackson doc. – MebAlone

+0

Tất cả các phương thức của Jackson đều có dạng 'readValue (nguồn, loại)', vì vậy nó có dạng như sau. Và khi sử dụng IDE, tự động hoàn thành sẽ giúp hiển thị nhiều khả năng (nếu không, cần kiểm tra javadocs) – StaxMan

Các vấn đề liên quan