jackson注解详细说明

jackson的maven依赖

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
        <artifactId>jackson-databind</artifactId> 
    <version>2.5.3</version>
</dependency>    

在这单独总结一下,最近常用到的注解。

1.@JsonProperty :此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty(“name”)。

对属性名称重命名,比如在很多场景下Java对象的属性是按照规范的驼峰书写,但在数据库设计时使用的是下划线连接方式,此处在进行映射的时候

@JsonProperty(value = "SORT_NUM")
@Column(name = "sort_num")
private String sortNum;

2.@JsonIgnore此注解用于属性或者方法上(最好是属性上),用来完全忽略被注解的字段和方法对应的属性

@JsonIgnore
@ApiModelProperty("密码")
private String password;

3.@JsonIgnoreProperties此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
例如:User实体中会有字段password字段,当返回用户信息给前台的时候,当然是不希望将password值也一并返回,
所以,可以在password属性上加上注解JsonIgnore
或者,可以在User类上加上注解

@JsonIgnoreProperties(value = "{password}")

4.@JsonFormat此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式。

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;

5.@JsonSerialize此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。

6.@JsonDeserialize此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize。

7.@JsonInclude 属性值为null的不参与序列化。

@JsonInclude(Include.NON_NULL)
发布了80 篇原创文章 · 获赞 140 · 访问量 64万+

猜你喜欢

转载自blog.csdn.net/linjpg/article/details/99874762