我如何不使用 JAX-RS 接口序列化对象的某些部分(子对象)?
How can I NOT serialize some part (subobject) of an Object using JAX-RS interface?
我有以下 classes:
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 "own" class A 在我的项目中,由 classes B 和 C 来自另一个项目(JAR 依赖项包含在 DOM 中)。我通过调用 REST 接口收集 B 的信息。与 B 一起出现的是 C,其中包含一个密码。
当我将 A 发送给用户时,所有对象都被序列化了。这样,C(和密码)就可以了。
如何发送 A 和 B,但省略 C?
我无法更改 B 和 C:
- 我无法在 class B 中将 @JsonIgnore 放在 C 上;
- B中没有setter,所以我不能a.getB().setC(null).
真正的问题来了:
1. 我可以在我的 REST 接口(我使用 RESTEasy)中放置任何注释,以便 Jackson 可以在没有 C 的情况下进行序列化 class?
- 或者,如果没有,我如何通过编码来做到这一点?
我不想创建另一个对象 "B-like" 并复制所有属性。应该有更好的方法(我希望)。
您可以在 "b" 上使用来自 com.fasterxml.jackson.annotation 的 @JsonIgnoreProperties 注释:
class A {
@JsonProperty("id")
Integer id;
@JsonProperty("b")
@JsonIgnoreProperties({"c"})
B b;
// constructors, getters, etc.
}
希望对你有所帮助
我有以下 classes:
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 "own" class A 在我的项目中,由 classes B 和 C 来自另一个项目(JAR 依赖项包含在 DOM 中)。我通过调用 REST 接口收集 B 的信息。与 B 一起出现的是 C,其中包含一个密码。
当我将 A 发送给用户时,所有对象都被序列化了。这样,C(和密码)就可以了。
如何发送 A 和 B,但省略 C?
我无法更改 B 和 C:
- 我无法在 class B 中将 @JsonIgnore 放在 C 上;
- B中没有setter,所以我不能a.getB().setC(null).
真正的问题来了: 1. 我可以在我的 REST 接口(我使用 RESTEasy)中放置任何注释,以便 Jackson 可以在没有 C 的情况下进行序列化 class?
- 或者,如果没有,我如何通过编码来做到这一点?
我不想创建另一个对象 "B-like" 并复制所有属性。应该有更好的方法(我希望)。
您可以在 "b" 上使用来自 com.fasterxml.jackson.annotation 的 @JsonIgnoreProperties 注释:
class A {
@JsonProperty("id")
Integer id;
@JsonProperty("b")
@JsonIgnoreProperties({"c"})
B b;
// constructors, getters, etc.
}
希望对你有所帮助