1

我正在使用 Jackson 为我的 android 应用程序解析 JSON。我也打算在我的 REST 服务器中使用它,所以我将在客户端和服务器之间共享我的模型。

我创建了一个 POJO 来为域对象“朋友”建模。当客户端获取https://www.myserver.com/api/1/friend/1234时,我想返回 ID 为 1234 的序列化 Friend,可能缺少一两个字段。

但是,当客户端获取https://www.myserver.com/api/1/friend/时,我想返回所有朋友对象,但数据较少,可能更适合搜索结果(例如,只有名字、姓氏和个人资料图片,但不包括他们的朋友列表、出生日期等)。

我应该在这里遵循什么模式,以便我可以根据访问方式以不同的方式表示相同的底层模型?

4

2 回答 2

1

继承可以是与 结合使用的选项@JsonIgnoreProperties

您可以拥有一个类Friend并对其进行扩展以限制要序列化的属性。

@JsonIgnoreProperties({ "friends", "dateOfBirth" })
class RestrictedFriend extends Friend {

}
于 2013-05-21T15:31:49.620 回答
0

看看你是否想使用继承。有一个包含要与所有人共享的字段的基类,以及一个包含更多受限数据的子类。有两个 JSON API,一个用于公共信息,一个用于公共+安全信息,并根据调用的 API 序列化基类或子类对象。

于 2013-05-21T12:11:48.243 回答