[英]Java 8 Stream API to get specific value
具有以下 JSON 结构值。 我想从字符串列表中的“KEY”中获取值
"Test": {
"ONE": {
"First_Layer": {
"KEY": "VALUE_1"
},
"First_Layer_1": {
"KEY": "VALUE_2"
}
},
"TWO": {
"First_Layer_2": {
"KEY": "VALUE_3"
}
}
}
预期 Output(字符串列表):
[VALUE_1, VALUE_2, VALUE_3]
试过这个,它正在使用一层,而不是第二层
final Map<String, Map<String, String>> value = document.get("Test", Collections.emptyMap());
return value.values().stream()
.map(valueMap -> valueMap.get("KEY"))
.collect(Collectors.toList());
您的数据应反序列化为Map<String, Map<String, Map<String, String>>>
然后你可以使用flatMap
将第一层展平
List<String> res = data
.entrySet()
.stream()
.flatMap(m -> m.getValue().entrySet().stream())
.map(v-> v.getValue().get("KEY"))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.