gpt4 book ai didi

java - 使用 keySet() 从 JSONObject 中提取键

转载 作者:搜寻专家 更新时间:2023-11-01 01:01:08 26 4
gpt4 key购买 nike

我正在尝试从 JSON 对象中提取 key 。在这种情况下,JSON 对象是通过对名为 SkyRock 的社交网站进行 API 调用获得的,如下所示:

{
"max_page": 2,
"posts": {
"3111623007": {
"id_post": 3111623007,
"media_align": "float_left",
"tags": [],
"nb_comments": 24
},
"3114564209": {
"id_post": 3114564209,
"media_align": "float_left",
"tags": [],
"nb_comments": 33
},
"3116902311": {
"id_post": 3116902311,
"media_align": "float_left",
"tags": [],
"nb_comments": 29
}
}
}

我基本上想将所有 post_id 值存储在一个 ArrayList 中。为此,我尝试从 JSON 对象中提取 keys 并按如下方式执行此操作:

JSONObject posts = (JSONObject) jo.get("posts");
ArrayList<String> keys = (ArrayString<String>) posts.keyset();

问题是我无法找到合适的变量类型来存储从 keyset() 方法获得的结果。

我尝试搜索答案,但在大多数情况下,keys() 被用于提取 key (由于某种原因无法使用,我认为这可能是因为我正在使用 org.json.simple,但不确定)。

任何人都可以在这里帮助我找到问题的解决方案或检索键值的任何替代方法吗?

谢谢。

最佳答案

The javadoc说:

public interface JsonObject
extends JsonStructure, Map<String,JsonValue>

因此,JSONObject 是一个 Map,其键的类型为 String , 其值的类型为 JSONValue .

还有 javadoc of Map<K, V>.keySet() 说:

Set<K> keySet()

Returns a Set view of the keys contained in this map

那么,什么 JSONObject.keySet()返回是 Set<String> (这很合乎逻辑,因为 JSON 对象的键是字符串)。

所以你想要的是:

Set<String> keys = posts.keySet();

关于java - 使用 keySet() 从 JSONObject 中提取键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19195492/

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