在某些情况下,从JSON中删除属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在某些情况下,从JSON中删除属性相关的知识,希望对你有一定的参考价值。
我有一个这样的课:
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存储在db中并在没有sensitiveProperties的情况下存储它,我不能忽略这些属性,因为在其他进程中需要它们。
我正在考虑使用Jackson视图来解决问题,但我不知道杰克逊中是否有一些特殊内容我可以说,每个具有属性“sensitiveProperty1”的json对象都将其设置为null。
我正在使用Java和Jackson
答案
我认为this site能够很好地满足您的需求。
基本上你要做的就是在班级增加@JsonIgnoreProperties(value = { "intValue" })
或在场地级别添加@JsonIgnore
然后杰克逊应该为你处理其余的事情。
在你的情况下,看起来像:
public class SampleDto {
@JsonIgnore
private String normalProperty1;
private String normalProperty2;
...
以上是关于在某些情况下,从JSON中删除属性的主要内容,如果未能解决你的问题,请参考以下文章