【发布时间】:2018-09-12 12:07:35
【问题描述】:
有没有办法过滤 JSON 字符串中的嵌套字段?
我尝试过使用 Jackson SimpleBeanPropertyFilter 进行跟踪
String jsonString = "{"
+ “\”node1\”:{“
+ “\”field1\”:\”00\","
+ “\”field2\”:\”test1\","
+ “\”field3\”:\”test2\””
+ "},"
+ “\”node2\”:{“
+ “\”field1\”:\”00\","
+ “\”field2\”:\”test123\”,”
+ “\”field3\”:\”test456\””
+ "}"
+ "}";
ObjectMapper mapper = new ObjectMapper()
FilterProvider filters = new SimpleFilterProvider().addFilter("filter properties by name",
SimpleBeanPropertyFilter.filterOutAllExcept(“field1”));
mapper.addMixIn(Object.class, PropertyFilterMixIn.class);
mapper.setFilters(filters);
它工作正常,但有没有办法在 jackson 或任何其他 Java 的 JSON 库中指定嵌套字段,如“node1.field1”?
输入
{
"node1": {
"field1": "val1",
"field2": "val2"
},
"node2": {
"field1": "val1"
}
}
过滤器
node1.field1
预期输出
{
"node1": {
"field1": "val1"
}
}
【问题讨论】: