原文:http://www.bubuko.com/infodetail-264724.htm
---------------------
作者:雙斜杠少年
來源:CSDN
原文:https://blog.csdn.net/u012373815/article/details/52266609
Jackson相關(guān):
使用Jackson相關(guān)的注解時(shí)一定要注意自己定義的屬性命名是否規(guī)范。
命名不規(guī)范時(shí)會(huì)失去效果。(例如Ename ,Eage 為不規(guī)范命名。“nameE”,“ageE”為規(guī)范命名)我在此處掉坑半個(gè)小時(shí)。至于命名規(guī)范,大家自己搜索。其實(shí)不要太奇葩的命名都是可以得。
如果使用@JsonIgnore注解不起效時(shí)請注意一下你的屬性名字是否規(guī)范
1、@JsonIgnoreProperties
此注解是類注解,作用是json序列化時(shí)將java bean中的一些屬性忽略掉,序列化和反序列化都受影響。
寫法將此標(biāo)簽加在model 類的類名上 ,可以多個(gè)屬性也可以單個(gè)屬性
//生成json時(shí)將name和age屬性過濾
@JsonIgnoreProperties({"name"},{"age"})
public class? user {
private? String name;
private int age;
}
//生成json時(shí)將name和age屬性過濾
@JsonIgnoreProperties({"name"},{"age"})
public class user {
private String name;private int age;
}
2、@JsonIgnore
此注解用于屬性或者方法上(最好是屬性上),作用和上面的@JsonIgnoreProperties一樣。
生成json 時(shí)不生成age 屬性
public class user {
private String name;
@JsonIgnore
private int age;
}
3、@JsonFormat
此注解用于屬性或者方法上(最好是屬性上),可以方便的把Date類型直接轉(zhuǎn)化為我們想要的模式,比如@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)
4、@JsonSerialize
此注解用于屬性或者getter方法上,用于在序列化時(shí)嵌入我們自定義的代碼,比如序列化一個(gè)double時(shí)在其后面限制兩位小數(shù)點(diǎn)。
5、@JsonDeserialize
此注解用于屬性或者setter方法上,用于在反序列化時(shí)可以嵌入我們自定義的代碼,類似于上面的@JsonSerialize
6、@Transient
@[email protected]?射,ORM框架將忽略該屬性;
如果一個(gè)屬性并非數(shù)據(jù)庫表的字段映射,就務(wù)必將其標(biāo)示為@Transient,否則ORM框架默認(rèn)其注解為@Basic;
//表示該字段在數(shù)據(jù)庫表中沒有
@Transient
public int getAge() {
return 1+1;
}