杰克逊是否支持java 8 stream()?

vit*_*aly 10 json jackson guava java-8 java-stream

我想将Jackson的Tree Model与Java 8流API一起使用,如下所示:

JsonNode jn = new ObjectMapper().readValue(src, JsonNode.class);
return jn.stream().anyMatch(myPredicate);
Run Code Online (Sandbox Code Playgroud)

但是,JsonNode似乎没有实现stream(),我找不到任何标准帮助程序.

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

JsonNode jn = new ObjectMapper().readValue(src, JsonNode.class);
return Iterables.find(jn, myPredicate);
Run Code Online (Sandbox Code Playgroud)

但纯Java解决方案呢?

Sot*_*lis 21

JsonNode实现Iterable,所以它有一个spliterator().您可以使用

StreamSupport.stream(jn.spliterator(), false /* or whatever */);
Run Code Online (Sandbox Code Playgroud)

得到一个Stream.