gpt4 book ai didi

java - 从 JSONObject 中删除除一个之外的所有键

转载 作者:行者123 更新时间:2023-12-05 09:10:44 25 4
gpt4 key购买 nike

我有一个像这样的 JSONObject (org.json):

{
"a": "a",
"b": "a",
"c": "a",
"d": "a",
"e": "a",
"f": "a",
"g": "a",
...
}

我想删除除a 之外的所有键。除了我天真的方法之外,还有其他优雅的方法吗?

Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
if (!keys.next().equals("a")) {
keys.remove();
}
}

预期输出:

{"a": "a"}

最佳答案

在不使用 Gson 的情况下,这是一种可以减少行数的方法,但我不太喜欢使用 ArrayList 创建键的副本以防止出现 ConcurrentModificationException。老实说,你拥有的还不错。

          new ArrayList<>(object.keySet())
.stream()
.filter(key -> !key.equals("a"))
.forEach(object::remove);

由于那个可怕的新 ArrayList 调用,我什至会声明 List 并将其设为 2 行。

            List<String> keysForRemoval = object.keySet()
.stream()
.filter(key -> !key.equals("a"))
.collect(Collectors.toList());

keysForRemoval.forEach(object::remove);

关于java - 从 JSONObject 中删除除一个之外的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61036956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com