我有一个这样的课程:
public class SampleDto {
private String normalProperty1;
private String normalProperty2;
private String normalProperty3;
private String sensitiveProperty1;
private String sensitiveProperty2;
public String getNormalProperty1() {
return normalProperty1;
}
public void setNormalProperty1(String normalProperty1) {
this.normalProperty1 = normalProperty1;
}
public String getNormalProperty2() {
return normalProperty2;
}
public void setNormalProperty2(String normalProperty2) {
this.normalProperty2 = normalProperty2;
}
public String getNormalProperty3() {
return normalProperty3;
}
public void setNormalProperty3(String normalProperty3) {
this.normalProperty3 = normalProperty3;
}
public String getSensitiveProperty1() {
return sensitiveProperty1;
}
public void setSensitiveProperty1(String sensitiveProperty1) {
this.sensitiveProperty1 = sensitiveProperty1;
}
public String getSensitiveProperty2() {
return sensitiveProperty2;
}
public void setSensitiveProperty2(String sensitiveProperty2) {
this.sensitiveProperty2 = sensitiveProperty2;
}
}
应用程序中有一些部分需要按原样序列化它,因为该对象位于安全的环境中。
但我需要将json存储在数据库中并在没有sensitiveProperties的情况下存储它,我不能忽略这些属性,因为在其他进程中需要它们。
我当时正在考虑使用杰克逊的观点来解决这个问题,但我不知道杰克逊是否有什么特别的东西我可以说,每个json对象都有属性" sensitiveProperty1"将其设置为null。
我正在使用Java和Jackson
答案 0 :(得分:0)
我认为this site涵盖了你正在寻找的东西。
基本上你要做的是在课堂级别添加@JsonIgnoreProperties(value = { "intValue" })
或在场级别添加@JsonIgnore
,然后杰克逊应该为你处理其余部分。
在你的情况下看起来像:
public class SampleDto {
@JsonIgnore
private String normalProperty1;
private String normalProperty2;
...