【发布时间】:2021-03-26 12:30:35
【问题描述】:
我正在使用 java8 流 api 并想解析一个 Json 文件,然后使用流 api 来获得所需的输出。
Json 示例:
{
"map1":{
"Test1":
[
"1"
],
"Test2":
[
"2",
"3"
]
},
"map2":{
"Test3":[
"4",
"5"
]
}
}
java 程序:这里假设 map 可以完美地填充 json 文件。现在,当我运行以下程序时,它会在 .flatMap(e -> Stream.of(((Map.Entry)e).getKey())) ) 行抛出错误。
Map map = objectMapper.readValue("test", Map.class);
ArrayList response = (ArrayList) map.entrySet().stream()
.flatMap(e -> Stream.of(((Map.Entry)e).getValue()))
.flatMap(e -> Stream.of(((Map)e).keySet()))
.flatMap(e -> Stream.of(((Map.Entry)e).getKey()))
.collect(Collectors.toList());
这里我想通过流 api 处理后它应该得到结果。
List of [Test1, Test2, Test3]
如果它不能正常工作,有人可以看到这段代码或提出其他建议吗?
【问题讨论】:
-
map.values().stream().flatMap(m -> ((Map) m).keySet().stream()).collect(Collectors.toList());呢? -
如果我想像 1,2,3,4,5 这样的平面值怎么办
标签: java json jackson java-stream objectmapper