前言
日常工作当中,用到的涉及到的注解非常多,好多注解有的项目中用不上(当然也是具体看项目),
有的项目用的确很多,记录下,方便以后查阅

@JsonProperty

介绍

JsonProperty作用于序列化或者反序列化时,映射的属性的名字,可以放在get方法,set方法,属性上,都可以

1
2
@JsonProperty(value = "name")
private String userName;

  • 序列化后
    1
    {"name" : "zhangsan"}
  • Access属性
属性值说明
WRITE_ONLY仅做反序列化操作
READ_ONLY仅做序列化操作
index指定序列化顺序,序号越小,越靠前

@JsonProperty有一个属性Access,用来控制是否 能被【序列化】或者【反序列化】,默认是不受控制的。

  • 属性值READ_ONLY

只能序列化,不能反序列化。

1
2
3
4
5
@JsonProperty(value = "name")
private String userName;

@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String password;

  • 序列化后

    1
    {"password" : "123456","name" : "zhangsan"}
  • 属性值WRITE_ONLY

仅做反序列化操作

1
2
3
4
5
@JsonProperty(value = "name")
private String userName;

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;

  • 序列化后
    1
    {"name" : "zhangsan"}

用处

1、例如上面例子,需要将userName序列化成name,如果直接改代码,肯定改动地方很多,可以直接使用注解方式;
2、在pojo中有时候会有些特殊属性,我们可以序列化掉;