杰克逊筛选出不带批注的字段
我试图通过使用以下(简化)代码从序列化中过滤掉某些字段:SimpleBeanPropertyFilter
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
SimpleFilterProvider filterProvider = new SimpleFilterProvider().addFilter("test",
SimpleBeanPropertyFilter.filterOutAllExcept("data1"));
try {
String json = mapper.writer(filterProvider).writeValueAsString(new Data());
System.out.println(json); // output: {"data1":"value1","data2":"value2"}
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
private static class Data {
public String data1 = "value1";
public String data2 = "value2";
}
我们使用我们,我期望创建的序列化Json字符串仅包含,但是我得到.SimpleBeanPropertyFilter.filterOutAllExcept("data1"));
{"data1":"value1"}
{"data1":"value1","data2":"value2"}
如何创建遵循指定筛选器的临时编写器(在我的情况下,无法重新配置 ObjectMapper)。
注意:由于我的应用程序中的使用场景,我只能接受不使用 Jackson 注释的答案。