我得到了一个从下面的数据库调用返回的列表。
List<employee> list = empolyeeRepository.findByEmployeeId(id);
List 包含employee pojo 类对象。从休息电话返回时,我想删除一个属性,比方说“员工银行账户号”。
@RequestMapping(value = "/employeeInformation/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<Employee> getEmployeeInformation(@PathVariable("id") String id) throws Exception {
return empolyeeRepository.findByEmployeeId(id);
}
是否有任何注释或良好做法可以做到这一点?
最佳答案
正如上面评论中提到的,您不能在运行时删除已编译类的字段。假设您必须从生成的 json 中排除某些字段,我看到两个选项:
- 创建一个类,其中包含您希望出现在生成的 json 中的字段,将所需值从原始对象复制到新创建的对象中。这种方法称为 View 模型,允许您修饰某些对象的数据,隐藏敏感数据以免暴露。
- 根据序列化器的实现,可能会有注释来排除字段。
@JsonIgnore
可以放在 getter 方法上,如果你使用的是 Jackson(在 spring boot 中默认)。第二种方法需要的代码少得多,但第一种方法更灵活。
关于java - 从对象中删除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541488/