这两个注解都是用来解决前后端json序列化的问题,何为序列化?
当我们将 JSON 数据设置为 Java Object 时,称为 JSON 反序列化;当我们从 Java Object 中获取 JSON 数据时,称为 JSON 序列化。
@JsonAlias(value="")
顾名思义起别名,就是在反序列化时起作用,最好例子就是login页面,不需要对account类做vo类或者其他类与前端保持一致的变量名,只需要加上@JsonAlias,在反序列化时自动会给实体类的属性赋值
上图这种情况,前端传给后端的json数据是aName或者其他两种都可以,@JsonAlias只有value时可以简写,且可以指定多个反序列化名称。
@JsonProperty
value:定义逻辑属性的名称。
access:更改逻辑属性在序列化和反序列化中的可见性。
defaultValue:用于记录预期的默认值。
index:定义与对象指定的其他属性相关的属性的数字索引。
required:定义在反序列化期间是否需要属性的值。
access
元素更改由 getter 或 setter 或对象字段定义的逻辑属性的可见性。的值access
可以是以下之一。
Access.WRITE_ONLY:只有当我们将 JSON 数据设置为 Java 对象时,即在反序列化时,逻辑属性的可见性才可用。
Access.READ_ONLY:逻辑属性的可见性仅在我们从 Java 对象获取 JSON 数据时可用,即在序列化时。
Access.READ_WRITE:逻辑属性的可见性在序列化和反序列化时都可用。
Access.AUTO:逻辑属性的可见性将自动确定,这是access
元素的默认值。