用于
@JsonView根据序列化的上下文过滤字段。在将数据返回到REST客户端时,根据调用哪个REST服务,我们需要限制在使用相同数据模型时要序列化的数据。
假设我们要创建两个REST服务:
第一个服务返回一些用户信息,例如名字和姓氏,但不返回附加的消息。
第二个服务返回第一个服务的所有信息以及附加到当前用户的消息。
带有
@JsonView注释的样本POJO类
用户Pojo类
@JsonView(User.Views.Public.class) public String getFirstname() { return firstname; } @JsonView(User.Views.Public.class) public String getLastname() { return lastname; }留言Pojo课
@JsonView(User.Views.Internal.class) public List<Message> getMessages() { return messages; }休息控制器
@RestControllerpublic class SimpleRestController { @Autowired SimpleService simpleService; @RequestMapping(value = "/user/public", method = RequestMethod.GET) @JsonView(User.Views.Public.class) public User getUserWithPublicData() { return simpleService.loadUser(); } @RequestMapping(value = "/user/internal", method = RequestMethod.GET) @JsonView(User.Views.Internal.class) public User getUserWithInternalData() { return simpleService.loadUser(); }}


