如何将表示为字符串的列表转换为列表?

时间:2017-04-19 01:24:30

标签: java android json

我正在构建一个从themoviedb.org.

读取的Android应用程序

我要做的是让用户输入电影标题并使用该标题来查找其ID。

当我运行查询来搜索电影时,我得到的响应如下:

{
    "page": 1,
    "results": [
        {
            "poster_path": "aaaaa.jpg",
            "id": "11",
            "description": "MovieDescription"
        },
        {
            "poster_path": "bbbbb.jpg",
            "id": "12",
            "description": "MovieDescription2"
        },
        {
            "poster_path": "ccccc.jpg",
            "id": "13",
            "description": "MovieDescription"
        }
    ]
}

使用Maven JSON库,我可以使用resultsjson.get("results")键作为字符串获取。

返回:

[
    {
        "poster_path": "aaaaa.jpg",
        "id": "11",
        "description": "MovieDescription"
    },
    {
        "poster_path": "bbbbb.jpg",
        "id": "12",
        "description": "MovieDescription2"
    },
    {
        "poster_path": "ccccc.jpg",
        "id": "13",
        "description": "MovieDescription"
    }
]

但我想将这些结果中的第一个转换为另一个JSONObject,以便我可以从第一个结果中获取电影的ID。

我认为这样做的方法是将results值转换为JSONObject列表,然后在列表中的第一个对象上使用json.get("id")方法。但我不知道如何进行这种转换。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用JSONObject.getJSONArray直接将结果作为JSON数组获取:

JSONArray results = json.getJSONArray("results") // Get results as JSON Array
JSONObject first = results.getJSONObject(0) // Get first object as JSON Object

请参阅:JSONObject#getJSONArray(String)