org.codehaus.jackson.map.ObjectMapperで json -> bean の変換をする際に、beanに存在しないフィールドを無視する方法
検索してもそれっぽいのがあるようで見つからなかったのでメモ。
http://stackoverflow.com/questions/5455014/ignoring-new-fields-on-json-objects-using-jackson
の、
Add the following to the top of your class: import org.codehaus.jackson.annotate.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown = true)
というのを見て、これだ! と思ったのですが、そもそもBeanのクラスをxjcを使ってxsdから自動生成しているため、アノテーションを入れることなど不可能なのでした。
それでうーんうーんと調べていたところ、ObjectMapper側に設定を入れられることをいまさらながら発見。
これでできた。
ObjectMapper mapper = makeObjecteRapper();
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.readValue(json, clazz);