@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
该博客介绍了如何利用Jackson库的@JsonView注解来精细化控制Spring MVC接口返回的JSON对象属性。通过创建不同的视图接口,可以在接口A中只返回User的name和age属性,而在接口B中返回全部包括pwd的属性。这种方法提高了接口的安全性和灵活性。
8820

被折叠的 条评论
为什么被折叠?



