我正在尝试使用 java 流在 jsonNode 流中进行搜索。有一次,我收到了一个 ArrayNode,并在我的班级中使用一个简单的私有方法将其转换为 JsonNodes 列表;但是,当我想使用映射函数映射节点时,我意识到局部变量(节点;在第一个映射中)为空。考虑到我是 Java 8 的新手,我不明白为什么以及如何解决这个问题。我在这里发布我的代码:
List<JsonNode> msgs = arrayNodeToListNode((ArrayNode) kmsResponse.at(kmsResponsePath));
msgs.stream().forEach(t -> {
List<JsonNode> jsonNodes = arrayNodeToListNode((ArrayNode) t.get("coverageList"));
List<JsonNode> collect = jsonNodes.stream()
.map(node -> node.get("/coverage/coverageTypeLevel"))
.filter(node -> formule.equals(node.get("aggReference").textValue()))
.map(node -> t.get("premiumSplittedList"))
.map(node -> node.get("value")).collect(Collectors.toList());
String value = collect.toString();
response.append(collect);
});