JsonView 忽略所有但带注释的属性
JsonView ignore all but annotated properties
我有以下 JsonView
配置:
public class JsonViews {
public static class AdminView {
}
public static class PublicView extends AdminView {
}
}
我有以下实体:
public class UserEntity {
@JsonView(JsonViews.AdminView.class)
private int id;
@JsonView(JsonViews.PublicView.class)
private int name;
// getters / setters
}
在我的控制器中,我有以下方法:
我希望此方法return所有属性
@JsonView(JsonViews.AdminView.class)
public List<User> getAllOnlyForAdmin { return foo; }
我想 return 只有名字 属性
@JsonView(JsonViews.PublicView.class)
public List<User> getAllOnlyForAdmin { return foo; }
可能吗?如果不行,还有其他解决办法吗?
如果您只有一个视图用于 name-only 案例,这是可能的;
public class JsonViews {
public static class NameView {
}
}
和实体;
public class UserEntity {
private int id;
@JsonView(JsonViews.NameView.class)
private int name;
// getters / setters
}
和控制器方法;
@JsonView(JsonViews.NameView.class)
@RequestMapping("/admin/users")
public List<User> getUsersWithOnlyName() {
return userGetter.getUsers();
}
将为每个 User
和
获取唯一名称字段
@RequestMapping("/users")
public List<User> getUsers() {
return userGetter.getUsers();
}
将为您提供整个实体,默认行为。
更多关于 @JsonView
Spring
here under topic 6. Using JSON Views with Spring, also on spring.io
我有以下 JsonView
配置:
public class JsonViews {
public static class AdminView {
}
public static class PublicView extends AdminView {
}
}
我有以下实体:
public class UserEntity {
@JsonView(JsonViews.AdminView.class)
private int id;
@JsonView(JsonViews.PublicView.class)
private int name;
// getters / setters
}
在我的控制器中,我有以下方法:
我希望此方法return所有属性
@JsonView(JsonViews.AdminView.class) public List<User> getAllOnlyForAdmin { return foo; }
我想 return 只有名字 属性
@JsonView(JsonViews.PublicView.class) public List<User> getAllOnlyForAdmin { return foo; }
可能吗?如果不行,还有其他解决办法吗?
如果您只有一个视图用于 name-only 案例,这是可能的;
public class JsonViews {
public static class NameView {
}
}
和实体;
public class UserEntity {
private int id;
@JsonView(JsonViews.NameView.class)
private int name;
// getters / setters
}
和控制器方法;
@JsonView(JsonViews.NameView.class)
@RequestMapping("/admin/users")
public List<User> getUsersWithOnlyName() {
return userGetter.getUsers();
}
将为每个 User
和
@RequestMapping("/users")
public List<User> getUsers() {
return userGetter.getUsers();
}
将为您提供整个实体,默认行为。
更多关于 @JsonView
Spring
here under topic 6. Using JSON Views with Spring, also on spring.io