通常狀況下使用JSON只使用了java對象與字符串的轉換,可是,開發APP時候,咱們常常使用實體類來作轉換;這樣,就須要用到註解;
Jackson默認是針對get方法來生成JSON字符串的,可使用註解來作一些特殊用途;常見的使用以下:
1 排除屬性
@JsonIgnore,通常標記在屬性或方法上;做用於序列化與反序列化,在pure pojo中使用的比較少,可是在某些富pojo中,好比說因爲緩存考慮,咱們可能設置了一個接口,其中有個接口方法叫作getKey,此時默認的序列化/反序列化就會致使key找不到。
2 屬性別名
@JsonProperty,序列化/反序列化都有效,早期版本通常用於pojo和mybatis mapper之間在駝峯式和下劃線之間轉換,在mybatis 3中,已經內置了該規則,可參見http://www.cnblogs.com/zhjh256/p/5814414.html;
3 屬性排序
@JsonPropertyOrder,註釋在類聲明中;這個註解在某些對性能有極端要求且靈活性要求不是那麼高場景中,能夠必定程度上提高性能。
4 屬性格式轉換
使用自定義序列化/反序列化來處理;
@JsonSerialize,序列化;
@JsonDeserialize,反序列化;html
不過,默認狀況下,jackson是不處理註解的,需調用objectMapper.setAnnotationIntrospector(new JacksonAnnotationIntrospector());java
須要注意的是:1.9以前僅根據語法肯定有效或無效,1.9以後根據javabean的規範肯定生效的getter/setter和屬性。緩存