我正在使用Jackson解析我的Android应用程序的JSON。我也打算在我的REST服务器中使用它,所以我将在客户端和服务器之间共享我的模型。
我创建了一个POJO来模拟域对象“Friend”。当客户端获得https://www.myserver.com/api/1/friend/1234时,我想返回ID为1234的序列化好友,可能缺少一个或两个字段。
然而,当客户端获得https://www.myserver.com/api/1/friend/时,我想返回所有朋友对象,但是搜索结果可能更适合的数据更少(例如,只有名字,姓氏和个人资料图片,但不包括他们的列表朋友,出生日期等。)。
我应该遵循哪种模式,以便我可以根据访问方式以不同的方式表示相同的基础模型?
答案 0 :(得分:1)
继承可以与@JsonIgnoreProperties
一起使用。
您可以拥有一个类Friend
并对其进行扩展,以限制要序列化的属性。
@JsonIgnoreProperties({ "friends", "dateOfBirth" })
class RestrictedFriend extends Friend {
}
答案 1 :(得分:0)
查看是否要使用继承。拥有一个基类,其中包含您希望与所有人共享的字段,以及一个具有更多受限数据的子类。有两个JSON API,一个用于公共信息,一个用于公共+安全信息,并根据调用的API序列化基类或子类对象。