我有这样一节课:
public class Profile {
private String firstName;
private String lastName;
private String nickName;
@JsonIgnore
private boolean isNameSecret;
}
序列化对象时,可以隐藏属性 firstName
以及 lastName
如果 isNameSecret
是 true
?
2条答案
按热度按时间ql3eal8s1#
您需要编写自定义序列化程序并实现该逻辑。它可以如下所示:
以上代码打印:
r55awzrz2#
这可以通过使用jackson的mixin特性来实现。它允许在运行时应用外部类的注解。匹配是通过指定相同的属性名来完成的(也适用于getter/setter等方法名)
下面是一个问题示例(为了简单起见将示例变量公开),注意mixin类只包含要重写的属性。而且,它不需要初始化。
具有相同属性名和添加注解的mixin类
mixin类的条件应用序列化:
试验方法
输出