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
}

在我的控制器中,我有以下方法:

可能吗?如果不行,还有其他解决办法吗?

如果您只有一个视图用于 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