我是靠谱客的博主 震动香菇,最近开发中收集的这篇文章主要介绍Jackson注解:@JsonAlias使用详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍

@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使用详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部