【问题标题】:How do I access specfic JSON data from Rotten Tomatoes' API如何从烂番茄 API 访问特定的 JSON 数据
【发布时间】:2013-06-17 01:08:40
【问题描述】:

我正在尝试开发一个快速应用程序,该应用程序将返回来自此站点的即将上映的电影及其删节演员:http://developer.rottentomatoes.com/docs/read/json/v10/Upcoming_Movies。但是,我不确定如何访问最新电影以及删减的演员阵容。如果有人可以在这里帮助我,我将不胜感激,因为 JSON 对我来说有点混乱。

到目前为止,我一直使用How to request movie data from Rotten Tomatoes using their JSON API? 来帮助我,但我希望能够以“宿醉:布拉德利库珀等...”的格式列出这部电影和演员阵容。

if (response != null)
{
    try
    {
        // convert the String response to a JSON object,
        // because JSON is the response format Rotten Tomatoes uses
        JSONObject jsonResponse = new JSONObject(response);

        // fetch the array of movies in the response
        JSONArray movies = jsonResponse.getJSONArray("movies");

        // add each movie's title to an array
        String[] movieTitles = new String[movies.length()];
        for (int i = 0; i < movies.length(); i++)
        {
            JSONObject movie = movies.getJSONObject(i);
            movieTitles[i] = movie.getString("title");
            JSONArray cast = movie.getJSONArray("abridged_cast");
            String[] castmembers = new String[cast.length()];
            for(int j =0; j<cast.length();j++){


            }
        }

        // update the UI
        refreshMoviesList(movieTitles);
    }
    catch (JSONException e)
    {
        Log.d("Test", "Failed to parse the JSON response!");
    }
}

【问题讨论】:

    标签: android json rotten-tomatoes


    【解决方案1】:

    如果我理解您的问题,您希望您的输出格式如下:矩阵:基恩·里夫斯、劳伦斯·菲什伯恩、.....
    假设您从 json 中获取了正确的数据,则可以执行以下操作:

       // add each movie's title to an array
        String[] movieTitles = new String[movies.length()];
        for (int i = 0; i < movies.length(); i++)
        {
            JSONObject movie = movies.getJSONObject(i);
            movieTitles[i] = movie.getString("title") + ":";
            JSONArray cast = movie.getJSONArray("abridged_cast");
            String[] castmembers = new String[cast.length()];
            for(int j =0; j<cast.length();j++){
                    movieTitles[i] += castmembers[j];
                    if( j < (cast.length()-1)){
                         movieTitles[i] += ",";
                     } 
            }
        }
    

    【讨论】:

    • 这在大多数情况下是正确的,只需要通过执行 JSONObject name = cast.getJSONObject(j); 来初始化数组; castmembers[j] = name.getString("name");感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多