簡體   English   中英

Java 8 Stream API 獲取具體值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM