gpt4 book ai didi

java - 如何从 JSON 中提取 "extract"属性?

转载 作者:行者123 更新时间:2023-11-30 06:58:48 25 4
gpt4 key购买 nike

我正在尝试从此 link 读取 JSON 数据.

我可以使用以下方法读取页面属性内的整个数据:

JSONObject data=(JSONObject)new JSONTokener(IOUtils.toString(new URL("https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Russell%27s_paradox"))).nextValue();
String pageName=data.getJSONObject("query").getString("pages");
System.out.println(pageName);

我想从上述链接的“提取”属性中获取数据,但我无法做到。我是新手,找不到任何资源来学习这一点。

我尝试了以下代码,但收到了 JSONException。

JSONArray arr=data.getJSONArray("pages");
for(int i=0;i<arr.length();i++){
String def=arr.getJSONObject(i).getString("extract");
System.out.println(def);
}

帮助。

最佳答案

您尝试解析的 JSON 结构如下:

{
"batchcomplete": "",
"query": {
"normalized": [
{
"from": "Russell's_paradox",
"to": "Russell's paradox"
}
],
"pages": {
"46095": {
"pageid": 46095,
"ns": 0,
"title": "Russell's paradox",
"extract": "..."
}

也就是说,query 中的 pages 是一个对象,而不是数组。然后,extract 位于另一个嵌套对象中,键为 46095。您可以像这样访问 extract 字段:

JSONObject pages = data.getJSONObject("query").getJSONObject("pages");
for (String key : pages.keySet()) {
String def = pages.getJSONObject(key).getString("extract");
System.out.println(def);
}

关于java - 如何从 JSON 中提取 "extract"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41321535/

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