Я выполняю проект, когда я получаю данные с сервера в формате json. Я получаю данные о данных проектов и задачах.Init Pojo A с данными ошибки Pojo B
Мой проект 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...
Я получаю данные и анализ его следующим способом, но когда я пытаюсь загрузить задачи один из проектов, 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;
}
Я думаю, что ваш код выглядит okey .. !! Вы можете проверить 'tasksArray.length()'? –
Добавьте к примеру данные JSON, которые вы используете в getProjects() – pedrofb
. Новая задача создана, но в строке new Project (...) я думаю, что она не сохраняется. – MAOL