簡體   English   中英

Java JSONObject Distinct Key into List

[英]Java JSONObject Distinct Key into List

嗨 StackOverflow 社區,

我有一種情況,我需要將 Java JSONObect 鍵區分為列表。 這樣我就可以在那之后做一個 if else 語句。 這是我的 JSON Object 的示例。

{
  "E23": "1111",
  "E25": "5",
  "G1": {
    "b": "1",
    "c": "1"
  },
  "G2": {
    "d": "1"
  },
  "E2": "test pdf",
  "E3": "1",
  "E4": "1",
  "E5a": "12121991",
  "E6": "1",
  "E8": "7110",
  "E5b": 28,
  "E9": "01",
  "E1a": "1",
  "H3b": "4",
  "E24c1": "06",
  "E1b": "i",
  "H3a": "12",
  "E26a": [
    "04",
    "07",
    "09"
  ],
  "E14a": {
    "a": "1",
    "b": "1",
    "c": "1"
  }
}

預期的最終結果會變成這樣ArrayList [E,G,H]

僅供參考,key.chartAt(0) 可以來自 EI。 我正在考慮循環輸入每個 Object 並檢查 0 處的字符,如果列表不包含該字符,則將其放入列表中。 但我認為它會消耗很多 java 處理,我的 function 會變得更長。 有什么方法可以在不遍歷所有 Object 的情況下實現我的最終結果。

任何建議表示贊賞。

你可以這樣試試

JSONObject json = getJsonObject(); // your JSONObject
Set<String> jsonKeys = json.keySet();
Set<Character> myKeySet  = jsonKeys.stream()
            .map(key-> key.charAt(0))
            .collect(Collectors.toSet());

System.out.println(myKeySet);

Output:
[E,G,H]

注意:由於您的密鑰不應該重復使用 Set,否則您可以將其替換為 ArrayList

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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