有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获得一个一直更改名称的JSON对象

我想从Wikipedia获取主图像URL,但问题是pageID总是变化,现在我不知道如何获取URL。 这是api请求

https://en.wikipedia.org/w/api.php? 
action=query&titles=Max_Verstappen&prop=pageimages&pithumbsize=300&format=json

这就是答案

    {
    "batchcomplete": "",
    "query": {
        "normalized": [
            {
                "from": "Max_Verstappen",
                "to": "Max Verstappen"
            }
        ],
        "pages": {
            "41758713": {
                "pageid": 41758713,
                "ns": 0,
                "title": "Max Verstappen",
                "thumbnail": {
                    "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Max_Verstappen_2017_Malaysia_3.jpg/200px-Max_Verstappen_2017_Malaysia_3.jpg",
                    "width": 200,
                    "height": 300
                },
                "pageimage": "Max_Verstappen_2017_Malaysia_3.jpg"
            }
        }
    }
}

这是代码,现在我想我会通过这段代码找到URL

JSONObject jsonObject = new JSONObject(jsonResponse);
JSONObject query = jsonObject.getJSONObject("query");
JSONObject pages = jsonObject.getJSONObject("pages");

但现在我必须知道页面ID,但我不能,因为我想从许多维基百科文章中获得许多URL。 那么,有没有更简单的方法获取url


共 (1) 个答案

  1. # 1 楼答案

    您可以简单地获取对象的键值:

    JSONObject pages = jsonObject.getJSONObject("pages");
    for (String key : pages.keys()) {
        System.out.println(key); // will print '41758713' from your example
    }
    

    JSONObject.keys()