過濾掉領域我有一個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)? –
是的。對不起......我應該把它鏈接起來。 –