Playframework 2.0 使用Jackson JsonViews注释方法的PlayFramework 2

Playframework 2.0 使用Jackson JsonViews注释方法的PlayFramework 2,playframework-2.0,jackson,Playframework 2.0,Jackson,我试图定义实体的一些视图,以不同的方式将其转换为json。在Jax-rs中,还可以使用@JsonView对REST-resource方法进行注释,以指定在每个资源中需要哪个视图。在PlayFramework2中是否可以对控制器方法执行类似的操作 我的实体: public class User { public static class Normal{}; public static class Complete extends Normal{}; @Id @Js

我试图定义实体的一些视图,以不同的方式将其转换为json。在Jax-rs中,还可以使用@JsonView对REST-resource方法进行注释,以指定在每个资源中需要哪个视图。在PlayFramework2中是否可以对控制器方法执行类似的操作

我的实体:

public class User {
    public static class Normal{};
    public static class Complete extends Normal{};

    @Id
    @JsonView(Complete.class)
    private ObjectId id;
    @JsonView(Normal.class)
    @Property("user")
    private String username;
    @Property("pass")
    @JsonView(Normal.class)
    private String password;
    ...
}
控制器方法如下:

@JsonView(User.Normal.class)
public static Result getUsers(){
    List<User> users = User.findAll();
    return ok(Json.toJson(users));
}
@JsonView(User.Normal.class)
公共静态结果getUsers(){
List users=User.findAll();
返回ok(Json.toJson(users));
}
我希望它只返回带@JsonView(Normal.class)注释的字段,显然这不起作用,它还返回id字段。是否可以在不必手动使用ObjectMapper的情况下获取它


提前谢谢

试试这个。。。它对我有用

    ObjectMapper mapper = new ObjectMapper();
    mapper.disable(MapperFeature.DEFAULT_VIEW_INCLUSION);

    try {
        String ret = mapper.writerWithView(User.Normal.class)
                .writeValueAsString(User.findAll());

我也对使用该功能感兴趣,你自己找到答案了吗?我找不到答案,所以我使用ObjectMapper创建了一个简单的静态方法来返回带有所需视图的json。我想这只是为play framework制作插件或对其做出贡献的问题(因为它是一个OS项目)。不管怎样,谢谢。是的,它很有效。据我所知,这就是我所指的使用ObjectMapper manually的方法。仅手动方式。。