我指的是控制器,它应该返回一个对象列表。对象将转换为 JSON 字符串。将对象转换为 JSON 字符串时,将调用所有对象 getter。结果,对象的所有数据都被返回。如何防止返回对象的某些字段,也许有特殊的注解?
@Controller
@MessageMapping("/v1.0")
public class MyController {
@MessageMapping("/getList")
@SendTo("/topic/List")
public Collection<MyObj> getList() throws Exception {
return this.MyObjService.getList();
}
}
实际上是未来对象的类:
public class MyObj {
private String name;
private String login;
public String getName() {
return name;
}
public String getLogin() {
return login;
}
}
我想禁用该字段的返回login。
正如@ArtemKonovalov指出的那样,默认情况下,Spring 使用 Jackson 库作为 JSON 映射器。她建议使用注释
@JsonIgnore。但
迟早你会想要从一个对象中获取两个不同的 JSON,它们的字段集不同。因此,以一种好的方式,您需要制作没有逻辑的单独 DTO,您将其完全序列化为 JSON。
附言。此外,我建议制定一个规则,始终明确地在字段上挂上注释,
@JsonProperty并在其中明确指示字段名称。否则,带有字段重命名的意外重构将破坏您的 API。