gpt4 book ai didi

java - Android - 如何从 api.烂番茄 解析 JSONObject 和 JSONArray

转载 作者:行者123 更新时间:2023-12-01 04:37:47 24 4
gpt4 key购买 nike

所以,有这个 JSON 代码。我正在尝试获取“abridged_cast”。但它很复杂。它的 JSONObject在 JSONArray 内 onside jSONObject 在 JsonArray 内....

{
"total": 591,
"movies": [
{
"title": "Jack and Jill",
"year": 2011,
"runtime": "",
"release_dates": {
"theater": "2011-11-11"
},
"ratings": {
"critics_score": -1,
"audience_score": 90
},
"synopsis": "",
"posters": {
"thumbnail": "",
"profile": "",
"detailed": "",
"original": ""
},
"abridged_cast": [
{
"name": "Al Pacino",
"characters": []
},
{
"name": "Adam Sandler",
"characters": []
},
{
"name": "Katie Holmes",
"characters": []
}
],
"links": {
"self": "",
"alternate": ""
}
}
],
"links": {
"self": "",
"next": ""
},
"link_template": ""
}

这是我获取“标题”和“年份”的代码

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
movieTitles = new String[movies.length()];
for (int i = 0; i < movies.length(); i++) {
JSONObject movie = movies.getJSONObject(i);
movieTitles[i] = movie.getString("title");
}

希望有人能帮助我,因为我不知道如何获得 abridged_cast”

最佳答案

movies 包含“电影”对象的数组。这些对象中的每一个都包含一个字段abridged_cast,它是一个对象数组(我们称之为“ Actor 成员”)。

如果您不打算映射到 POJO 而是通过 JSON,则只需在获取 movie 后在循环中获取该数组,并获取每个“ Actor ”使用另一个循环以相同的方式从该数组中获取对象。

...
JSONArray cast = movie.getJSONArray("abridged_cast");
for (int j = 0; j < cast.length(); j++) {
JSONObject castMember = cast.getJSONObject(j);
...
}

根据评论进行编辑:您最初的问题涉及如何从您拥有的 JSON 中提取信息;上面的代码解释了这一点。现在看来您正在询问一个关于如何使用它的更基本的编程问题。

如果您要使用 Android 附带的 org.json 类,您现在就知道如何访问返回的 JSON 对象中的信息。您可以围绕已解析的 JSONObject 编写方法,以使用 json.org 包中的对象和方法按原样访问数据。例如,您可以编写一个“getMovie()”方法,该方法将电影名称作为字符串,并在“movies”数组中搜索正确的电影,并将其作为 JSONObject 返回。

通常,您会在 Java 中创建类来封装 JSON 返回的数据,并使用适合您的访问模式的数据结构(例如,包含所有使用其名称的电影的 Map作为键)。使用 org.json 类,您必须实例化这些对象,并在解析 JSON 时手动填充它们,就像您在问题中所做的那样。如果您使用 GsonJackson JSON 解析库,它们能够获取您拥有的 JSON,并将所有数据映射到您创建的类,并在单个中返回它们称呼。

关于java - Android - 如何从 api.烂番茄 解析 JSONObject 和 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17086718/

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