0
私はプロジェクトを行っています。私はjson形式のサーバーからデータを取得しています。私はプロジェクトのデータとタスクのデータを取得しています。Pojo Bエラーのデータを含むPojo A
マイプロジェクトPOJO:
public class Project implements Serializable{
private String project_Name;
private String project_Id;
private ArrayList<Task> tasks;
public Project() {
}
public Project(String project_Id, String project_Name, ArrayList<Task> tasks) {
this.project_Id = project_Id;
this.project_Name = project_Name;
this.tasks = tasks;
}
setters and getters...
タスクPOJO:
public class Task implements Serializable{
private String task_Name;
private int task_Id;
private String task_item;
private String task_item_tag;
public Task() {
}
public Task(int task_Id, String task_Name, String task_item, String task_item_tag) {
this.task_Name = task_Name;
this.task_Id = task_Id;
this.task_item = task_item;
this.task_item_tag= task_item_tag;
}
getters and setters...
私はデータを取得し、次の方法でそれを解析するが、私はのタスクをロードしようとしているときですプロジェクトの1つで、各プロジェクト内のタスクのarraylistは空です。なぜ??私は何か間違って初期化していますか?
方法:
private ArrayList<Project> getProjects(String JSONresponse) {
ArrayList<Project> projects = new ArrayList<>();
ArrayList<Task> tasks = new ArrayList<>();
try {
JSONObject projectObject = new JSONObject(JSONresponse);
JSONArray projectsArray = projectObject.getJSONArray("data");
for (int i = 0; i < projectsArray.length(); i++) {
JSONObject objProject = projectsArray.getJSONObject(i);
String project_Id = objProject.getString("project_Id");
String project_Name = objProject.getString("project_Name");
//projects.add(new Project(project_Name, project_Id, null));
JSONArray tasksArray = objProject.getJSONArray("tasks");
for (int j = 0; j < tasksArray.length(); j++) {
JSONObject objTasks = tasksArray.getJSONObject(j);
int task_Id = objTasks.getInt("task_Id");
String task_Name = objTasks.getString("task_Name");
String task_item= "";
if (objTasks.has("task_item")) {
task_item+= objTasks.getString("task_item");
}
String task_item_tag= "";
if (objTasks.has("task_item_tag")) {
task_item_tag+= objTasks.getString("task_item_tag");
}
tasks.add(new Task(task_Id, task_Name, task_item, task_item_tag));
}
projects.add(new Project(project_Id, project_Name, tasks));
tasks.clear();
tasks = new ArrayList<>();
}
return projects;
} catch (JSONException e) {
Log.e("REQ_PROJ_TASK", e.getMessage());
}
return null;
}
あなたのコードは見た目が似ていると思います!! 'tasksArray.length()'を確認できますか? –
getProjects()で使用しているJSONデータの例に追加 – pedrofb
新しいタスクが作成されますが、new Project(...)行には保存されていないと思います。 – MAOL