2012-08-16 34 views
6

Có cách nào mà tôi không phải trích xuất các thẻ tôi cần "thủ công" từ JSON nếu tôi không muốn deserialize tất cả chúng để tôi có thể sử dụng hàm tạo này?Deserializate chỉ một số thẻ JSON nhất định với Jackson

public class Tweet { 
    public String username; 
    public String message; 
    public String image_url; 

    @JsonCreator 
    public Tweet(
      @JsonProperty("from_user")   String username, 
      @JsonProperty("text")    String message, 
      @JsonProperty("profile_image_url") String url) { 
     this.username = username; 
     this.message = message; 
     this.image_url = url; 
    } 
} 

Và ở đây nó là JSON:

{ 
     "created_at":"Wed, 15 Aug 2012 18:17:55 +0000", 
     "from_user":"felix_panda", 
     "from_user_id":132396774, 
     "from_user_id_str":"132396774", 
     "from_user_name":"felix suganda", 
     "geo":null, 
     "id":235802515571101696, 
     "id_str":"235802515571101696", 
     "iso_language_code":"en", 
     "metadata":{ 
      "result_type":"recent" 
     }, 
     "profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/2393214158\/profile_normal.jpg", 
     "profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/2393214158\/profile_normal.jpg", 
     "source":"<a href="http:\/\/www.tweetcaster.com" rel="nofollow">TweetCaster for Android<\/a>", 
     "text":"@Android how do u fix you lost your data connection because you left home network with data roaming (cont) http:\/\/t.co\/4coRjaXT", 
    "to_user":"Android", 
    "to_user_id":382267114, 
    "to_user_id_str":"382267114", 
    "to_user_name":"Android" 

Đây là lỗi tôi nhận được khi deserializing nó:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "created_at" 

Trả lời

1

Tôi đang sử dụng MongoJack. Đây là những gì tôi đã làm để giải quyết nó.

ObjectMapper mapper = new ObjectMapper().setVisibility(PropertyAccessor.FIELD, Visibility.ANY); 
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
    MongoJackModule.configure(mapper); 
    JacksonDBCollection<Message, Long> coll = JacksonDBCollection.wrap(dbCollection, Message.class, Long.class, mapper); 
Các vấn đề liên quan