@JsonView可以灵活控制返回给前端的属性
比如现在user有name,age,pwd三个属性
现在想要接口A返回的user只有name,age两个属性
想要接口B返回的user有name,age,pwd三个属性
于是就在user类的第一中加上@JsonView注解:
@Data
public class User{
@JsonView(UserSimpleView.class)
private String name;
@JsonView(UserSimpleView.class)
private int age;
@JsonView(UserDetailView.class)
private String pwd;
//建立两个视图
public interface UserSimpleView{};
public interface UserDetailView extends UserSimpleView{};
}
UserDetailView继承了UserSimpleView,所以UserSimpleView有的属性UserDetailView也会有
@GetMapping("...")
@JsonView(User.UserSimpleView.class)
public List<User> A() {
}
@GetMapping("...")
@JsonView(User.UserDetailView.class)
public List<User> B() {
}
于是在controller接口中:
返回给前端的user,A接口返回的会是的只有2个属性的user,B接口返回的有3个属性的User