Java 循环JSON以获取特定值
我需要循环使用JSON并获得以下信息: 原始标题、概述、发布日期、海报路径 我有以下代码Java 循环JSON以获取特定值,java,android,json,mobile,Java,Android,Json,Mobile,我需要循环使用JSON并获得以下信息: 原始标题、概述、发布日期、海报路径 我有以下代码 @Override protected void onPostExecute(String s) { try { JSONObject jsonObject = new JSONObject(result); JSONArray jArray = jsonObject.getJSONArray("results");
@Override
protected void onPostExecute(String s) {
try {
JSONObject jsonObject = new JSONObject(result);
JSONArray jArray = jsonObject.getJSONArray("results");
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
JSONObject finalObject = jArray.getJSONObject(i);
String movie_title = finalObject.getString("title");
String releaseDate = finalObject.getString("release_date");
mMovie_title.setText(movie_title);
mReleaseDate.setText(releaseDate);
}
super.onPostExecute(s);
} catch (JSONException e) {
e.printStackTrace();
}
}
@覆盖
受保护的void onPostExecute(字符串s){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray jArray=jsonObject.getJSONArray(“结果”);
JSONObject json_data=null;
for(int i=0;i
这段代码的问题是,它只能让我得到数组中的最后一部电影
它不会打印任何其他电影标题
我需要做的是从JSON中获取电影标题以及概述、发布日期和海报路径
这里是JSON
非常感谢您的帮助
看起来您每次都在重新分配相同的变量。这就是为什么你只得到最后一个元素
您可能需要一个StringBuilder
StringBuilder titles = new StringBuilder();
for ... {
...
titles.append(movie_title);
}
mMovie_title.setText(titles.toString());
循环JSON不是一个好的决定 尝试使用 性能比这更好,也是一个很好的练习 Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象
编码不错如果您想存储多个电影标题,那么您需要一些东西 首先,需要一个电影对象来保存电影标题和电影日期的值。比如:
public class Movie {
private String movieTitle;
private String releaseDate;
public Movie(String movieTitle, String releaseDate) {
super();
this.movieTitle = movieTitle;
this.releaseDate = releaseDate;
}
}
然后你需要有一个电影列表
super.onPostExecute(s);
List<Movie> movies = new ArrayList<Movie>();
Movie movie = null;
try {
JSONObject jsonObject = new JSONObject(result);
JSONArray jArray = jsonObject.getJSONArray("results");
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++)
JSONObject finalObject = jArray.getJSONObject(i);
String movie_title = finalObject.getString("title");
String releaseDate = finalObject.getString("release_date");
movies.add(new Movie(movie_title, releaseDate));
}
} catch (JSONException e) {
e.printStackTrace();
}
// Do something with movies
// example ::
for (Movie movie : movies) {
textView.setText(movie.getMovieTitle); // etc...
}
super.onPostExecute;
列表电影=新建ArrayList();
Movie=null;
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray jArray=jsonObject.getJSONArray(“结果”);
JSONObject json_data=null;
for(int i=0;i
类似问题
super.onPostExecute(s);
List<Movie> movies = new ArrayList<Movie>();
Movie movie = null;
try {
JSONObject jsonObject = new JSONObject(result);
JSONArray jArray = jsonObject.getJSONArray("results");
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++)
JSONObject finalObject = jArray.getJSONObject(i);
String movie_title = finalObject.getString("title");
String releaseDate = finalObject.getString("release_date");
movies.add(new Movie(movie_title, releaseDate));
}
} catch (JSONException e) {
e.printStackTrace();
}
// Do something with movies
// example ::
for (Movie movie : movies) {
textView.setText(movie.getMovieTitle); // etc...
}