6

如果我不想反序列化所有标签以便我可以使用这个构造函数,有没有一种方法我不必从 JSON 中“手动”提取我需要的标签?

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"
4

2 回答 2

12

看起来您想禁用 FAIL_ON_UNKNOWN_PROPERTIES

于 2012-08-16T18:03:14.223 回答
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);
于 2013-07-16T23:19:44.057 回答