Json Jackson是否支持java 8 stream()?

Json Jackson是否支持java 8 stream()?,json,jackson,java-8,guava,java-stream,Json,Jackson,Java 8,Guava,Java Stream,我想使用Jackson的Java 8流API,如下所示: JsonNode jn = new ObjectMapper().readValue(src, JsonNode.class); return jn.stream().anyMatch(myPredicate); 然而,JsonNode似乎没有实现stream(),我找不到任何标准的帮助程序来实现它 JsonNode实现了Iterable,因此我可以使用Google Guava获得相同的结果: JsonNode jn = new Obj

我想使用Jackson的Java 8流API,如下所示:

JsonNode jn = new ObjectMapper().readValue(src, JsonNode.class);
return jn.stream().anyMatch(myPredicate);
然而,JsonNode似乎没有实现
stream()
,我找不到任何标准的帮助程序来实现它


JsonNode
实现了Iterable,因此我可以使用Google Guava获得相同的结果:

JsonNode jn = new ObjectMapper().readValue(src, JsonNode.class);
return Iterables.find(jn, myPredicate);

但是纯Java解决方案呢?

JsonNode
实现了
Iterable
,因此它有一个
spliterator()
。你可以用

StreamSupport.stream(jn.spliterator(), false /* or whatever */);

要获得

,您不能在JSON图上真正执行java流,可以吗,至少如果您执行了,如果必须限制为连续流,即使这样,我也不确定它是否有多大意义。同时,子节点可能比它们的父节点先到达,这有点奇怪。也许您正在考虑将顶级对象的列表流式转换为POJO。这个问题似乎在这里得到了回答:嘿,卡尔·尼古拉斯。我的意思是从节点(无论是对象还是数组)读取序列。然而,问题是关于Jackson树模型,它与POJO无关。公认的答案正是我所需要的。至于流式处理图形:JSON文档是一种非常特殊的图形(树),确保可以遍历它,例如广度优先或深度优先。当然,可以遍历树,但流式处理不应该是同一个对象吗?如果我对一棵树进行流式遍历,您会得到每个属性的不同对象,例如日期、整数、浮点等?我知道一切都是一个JsonNode,但那是一个包装类。如果您不关心节点中的内容,或者要对某些内容进行过滤,是的,我想这可能很方便。无论如何,我不知道你想做什么,所以不用担心,我只是在考虑关于流树结构的问题。很高兴你得到了你想要的东西。