首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java JSONObject Distinct Key Key

Java JSONObject Distinct Key Key
EN

Stack Overflow用户
提问于 2020-06-30 12:26:03
回答 1查看 20关注 0票数 0

在StackOverflow社区,

在这种情况下,我需要将Java区分到一个列表中。这样我就可以在那之后做一个if else语句。下面是我的JSON对象的一个示例。

代码语言:javascript
复制
{
  "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)可以来自E-I。我正在考虑在每个对象中循环,检查字符是否为0,如果列表中没有包含该字符,则将其放入列表中。但我认为这将消耗大量的java处理,并且我的函数会变得更长。有没有什么方法可以在不遍历所有对象的情况下达到我的最终结果。

任何建议都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2020-06-30 13:02:29

你可以这样试一试,

代码语言:javascript
复制
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替换它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62650293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档