在 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);
我想使用多个 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);