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 に答える