如果我不想反序列化所有这些标记,以便我可以使用这个构造函数,那么我是否有办法从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"
答案 0 :(得分:12)
答案 1 :(得分: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);