2012-08-16 28 views
6

某些JSON標籤是否有辦法,我沒有提取我需要的標籤爲「手動」從JSON,如果我不想反序列化所有的人,這樣我可以使用這個構造?Deserializate只有傑克遜

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; 
    } 
} 

這裏,它是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" 

這是反序列化時,我得到的錯誤:

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

回答

1

我正在使用MongoJack。這是我做的解決它。

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);