首页 > 解决方案 > 如何获得一个始终更改其名称的 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");

但现在我到了必须知道 pageID 的地步,但我不能,因为我想从许多 Wikipedia 文章中获取许多 url。那么有没有更简单的方法来获取网址?

标签: javaandroidimageandroid-studiowikipedia

解决方案


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

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

JSONObject.keys()


推荐阅读