在 JAX-RS 中使用多个 @JsonView (Jackson)

Use multiple @JsonView (Jackson) in JAX-RS

我想使用多个 JsonView 来序列化一个响应。 例如,我有以下对象:

public class A {
        
    @JsonView(FieldView.A.class)
    private String a;
    
    @JsonView(FieldView.B.class)
    private String b;
    
    @JsonView(FieldView.C.class)
    private String c;
        
}

我想在视图 A 和 B 的序列化中添加。但是我没有找到任何解决方案,因为我使用的是只接受一个视图(不是列表)的 ObjectMapper writeWithView,如果这样的话我添加 A,然后从响应中删除 B 和 C。

om.writeWithView(FieldView.A.class)

这是一种使用多个视图来 writeWithView 的方法吗? 谢谢

毕竟我做了一个解决方法。使用 SimpleBeanPropertyFilter 我创建了一个我想用 serializeAllExcept(Set<String> fields).

丢弃的字段列表
ObjectMapper mapper = new ObjectMapper();
SimpleBeanPropertyFilter theFilter = SimpleBeanPropertyFilter.serializeAllExcept(fields);
FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter", theFilter);
mapper.setFilterProvider(filters);