概述
介绍
@JsonAlias注解是在JackSon 2.9版本中开始出现的。作用是为对象属性设置别名,在反序列化时,让对象的属性接受多个json字段的值,可以放在对象属性上或者对象属性的setter方法上。
package com.fasterxml.jackson.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@JacksonAnnotation
public @interface JsonAlias {
String[] value() default {};
}
属性说明
- value:是一个字符串数组
使用
单个别名
@JsonAlias(value = "username")
private String name;
多个别名
@JsonAlias(value = {"username","user"})
private String name;
value是逻辑属性的名称,如果只有value则省略
@JsonAlias({"username","user"})
private String name;
对象属性上
public class User {
@JsonAlias(value = {"username","user"})
private String name;
private String sex;
private Integer age;
}
对象属性的setter方法上
public class User {
private String name;
private String sex;
private Integer age;
public String getName() {
return name;
}
@JsonAlias(value = {"username","user"})
public void setName(String name) {
this.name = name;
}
...
}
注意:如果json字符串中存在对象属性的多个别名,属性会被重复赋值,直到最后一个出现的别名为止。
实践
{
"username": "xiaoming",
"sex": "man",
"age": 18
}
控制台输出
User(name=xiaoming, sex=man, age=18)
最后
以上就是震动香菇为你收集整理的Jackson注解:@JsonAlias使用详解的全部内容,希望文章能够帮你解决Jackson注解:@JsonAlias使用详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复