常用Jackson註解解釋
阿新 • • 發佈:2019-02-03
@JsonNaming(SnakeCaseStrategy.class)
指定Json欄位名對映策略為蛇形大小寫策略。預設則直接使用Bean屬性名
可用的命名對映策略還有:
KebabCaseStrategy: 肉串策略 - 單詞小寫,使用連字元'-'連線
SnakeCaseStrategy: 蛇形策略 - 單詞小寫,使用下劃線'_'連線;即老版本中的LowerCaseWithUnderscoresStrategy
LowerCaseStrategy: 小寫策略 - 簡單的把所有字母全部轉為小寫,不新增連線符
UpperCamelCaseStrategy: 駝峰策略 - 單詞首字母大寫其它小寫,不新增連線符;即老版本中的PascalCaseStrategy
@JsonIgnoreProperties({"id", "created", "steps", "copy", "stepList"})
類註解,指定序列化時忽略這些屬性,可以用於覆蓋超類中預設輸出的屬性
@JsonInclude(Include.NON_EMPTY)
僅在屬性不為空時序列化此欄位,對於字串,即null或空字串
@JsonIgnore
序列化時忽略此欄位
@JsonProperty(value = "user_name")
指定序列化時的欄位名,預設使用屬性名
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
指定Date類欄位序列化時的格式
@JsonUnwrapped(prefix = "user_")
private User user;
把成員物件中的屬性提升到其容器類,並新增給定的字首,比如上例中: User類中有name和age兩個屬性,不使用此註解則序列化為:
... "user": { "name": "xxx", "age": 22 } ...
使用此註解則序列化為:
... "user_name": "xxx", "user_age": 22, ...
@JsonIgnoreType
類註解,序列化時忽略此類
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,property = "id")
作用於類或屬性上,被用來在序列化/反序列化時為該物件或欄位新增一個物件識別碼,通常是用來解決迴圈巢狀的問題
摘自:http://blog.csdn.net/rocks_lee/article/details/52774459