我有以下类:
class A {
@JsonProperty("id")
Integer id;
@JsonProperty("b")
B b;
// constructors, getters, etc.
}
class B {
@JsonProperty("id")
Integer id
// other properties ...
@JsonProperty("c")
C c;
// getters and setters
}
class C {
@JsonProperty("id")
Integer id
// other properties ...
@JsonProperty("password")
String password;
// getters and setters
}
i在我的项目中,按B类和C级"自己" A类A类来自另一个项目(DOM中包含的JAR依赖性(。我通过调用REST接口来收集B的信息。与B一起,C来了,其中包含密码。
当我将A发送给用户时,所有对象都会序列化。这样,c(和密码(继续。
我该如何发送B,但省略C?
我无法更改B和C:
- 我不能将@jsonignore放在B级; 中
- b中没有setter,所以我不能a.getb((。setc(null(。
这是一个真正的问题:1.我可以在我的休息界面上输入任何注释(我使用Resteasy(,以便杰克逊可以在没有C类的情况下序列化?
- 或,如果没有,我该如何进行编码?
我不想创建另一个对象"类似于b,"并复制所有属性。应该有更好的方法(我希望(。
您可以使用com.fasterxml.jackson.annotation在" b":
上使用@jsonignoreproperties注释。class A {
@JsonProperty("id")
Integer id;
@JsonProperty("b")
@JsonIgnoreProperties({"c"})
B b;
// constructors, getters, etc.
}
我希望它对您有帮助。