为了解决json字符串有不少属性, 可是没必要每一个属性都映射到pojo的属性。
@JsonProperty : 标记一个方法是一个属性的getter或setter方法, 也即把java属性和json域关联起来
@JsonCreator: 定义从json字符串到java对象的构造方法, 在数据绑定的时候使用到
@JsonAnyGetter, @JsonAnySetter: 标记一个方法读取或设置不被其余java属性处理的域, 它们会处理全部不被其余属性处理的域, 这些域被做为键值对存储在一个map中。java
e.g:git
AlbumsDynamic albums = mapper.readValue(new URL(url), AlbumsDynamic.class); public class AlbumsDynamic { private String title; private DatasetDynamic[] dataset; ... } public class DatasetDynamic { private String album_id; private String album_title; private Map<String , Object> otherProperties = new HashMap<String , Object>(); @JsonCreator public DatasetDynamic(@JsonProperty("album_id") String album_id, @JsonProperty("album_title") String album_title) { this.album_id = album_id; this.album_title = album_title; } public String getAlbum_id() { return album_id; } public void setAlbum_id(String album_id) { this.album_id = album_id; } public String getAlbum_title() { return album_title; } public void setAlbum_title(String album_title) { this.album_title = album_title; } public Object get(String name) { return otherProperties.get(name); } @JsonAnyGetter public Map<String , Object> any() { return otherProperties; } @JsonAnySetter public void set(String name, Object value) { otherProperties.put(name, value); } }
http://www.studytrails.com/java/json/java-jackson-introduction/
https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations
http://www.studytrails.com/java/json/java-jackson-annotations-dynamic-beans/github