过滤掉领域我有一个JacksonJsonNode
子类型ObjectNode
的:从JsonNode
ObjectNode node = parent.path('somepath');
node
有许多子领域,比如你会在这个JSON对象看:
{
"somepath": {
"a": 1,
"b": 2,
"c": 3,
"d": 4
}
}
所以上述目的node
将有四个子对象(所有JsonNode
/ObjectNode
在孩子们自己的权利):a
,b
,c
和d
。
鉴于对象node
,我想过滤出的一些子字段。例如,假设我想过滤掉所有的,但是一些字段名称列表,比如["b", "c"]
。当我重新序列化node
对象就应该是这样的:
{
"somepath": {
"b": 2,
"c": 3
}
}
我能想到了很多办法的,我可以通过字段名称列表和保持列表既循环,重建对象,但这一切似乎都是很多工作,而且很不明确。我很想用一个Stream.filter()
类型的功能:
List<String> keepList = Lists.newArrayList("b", "c");
node.stream().filter(field -> keepList.contains(field.name()));
显然上面的代码不工作,因为我不能“流”的ObjectNode
。有没有一种方法可以让我以类似的方式工作,还是我坚持走很长的路?
你说的是[杰克逊的'ObjectNode'(https://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/数据绑定/节点/ ObjectNode.html)? –
是的。对不起......我应该把它链接起来。 –