【发布时间】:2013-09-19 13:13:56
【问题描述】:
场景
- Jersey/JacksonJson 用于我的 RESTful Web 服务请求。
- 具有 X、Y、Z 属性的实体 A。
- 2 个 RESTful 请求。
- 请求 1 应在 JSON 响应中返回具有 X、Y 属性的实体 A
- 请求 2 应在 JSON 响应中返回具有 X、Y、Z 属性的实体 A
- 实体 A 的配置使得属性 Z 使用 @JsonIgnore,因此它不会在 JSON 响应中返回
问题
如果在实体中将属性 Z 设置为 @JsonIgnore,如何在请求 2 中返回属性 Z?除了使用@JsonIgnore 之外,还有更好的方法来动态执行此操作吗? 下面是一些“演示”代码来帮助澄清我的问题。
@Entity
Class A implements Serializable {
String X;
String Y;
String Z;
@JsonIgnore
public String getZ() {
return Z;
}
}
@Path("form")
Class Request {
@GET
@Path("request1")
@Produces({"application/json"})
public A request1() {
return A;
}
@GET
@Path("request2")
@Produces({"application/json"})
public A request2() {
return A;
}
}
【问题讨论】:
-
将 Z 放入子类 B 并从 request2 返回 B?
-
有类的泛化和特化正如Kevin所说,Jackson会自动创建JSON对应的对象。它对我有用。