<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.3</version></dependency>
@JsonProperty
此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")
对属性名称重命名,比如在很多场景下Java对象的属性是按照规范的驼峰书写,但在数据库设计时使用的是下划线连接方式,此处在进行映射的时候就可以使用该注解。
@JsonProperty("user_name")private String userName;
此注解用于属性或者方法上(最好是方法上),用来完全忽略被注解的字段和方法对应的属性,即便这个字段或方法可以被自动检测到或者还有其他的注解,一般标记在属性或者方法上,返回的Json数据即不包含该属性。
//使用JsonIgnore注解在生成json数据时,不包含该字段@JsonIgnoreprivate String info;
类注解,将这个注解写在类上之后,就会忽略类中不存在的字段。这个注解还可以指定要忽略的字段,例如@JsonIgnoreProperties(value={"userName","info"})

@JsonFormat
这个注解可以帮我们完成格式转换。例如对于Date类型字段,如果不适用JsonFormat默认在rest返回的时long,如果我们使用@JsonFormat(timezone="GMT+8,pattern="yyyy-MM-dd HH:mm:ss"),就返回"2021-09-17 15:00:02 "

用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。
用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码类似于上面的@JsonSerialize。
属性值为null的不参与序列化。例如:@JsonInclude(include.NON_NULL)
文章转载自东神殿下,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




