0

I am trying to recover JSON array from List in the POJO.

JSON String

{
  "project": {
    "name": "Untitled Project",
    "created_at": "2014-11-23T01:01:59Z",
    "builds": [
      {
        "automation_build": {
          "name": "JUnit   Sample",
          "automation_project_id": 16214,
          "created_at": "2015-03-02T20:14:21Z",
          "id": 2049424,
          "group_id": 764496,
          "status": "done",
          "tags": null,
          "delta": false,
          "duration": 5200640,
          "hashed_id": "5bf65fe493fa859d141ed9e707b4fa435461146b",
          "user_id": 783527,
          "updated_at": "2015-05-02T00:51:41Z"
        }
      },
      {
        "automation_build": {
          "name": "Untitled Build",
          "automation_project_id": 16214,
          "created_at": "2015-06-09T11:45:47Z",
          "id": 2682799,
          "group_id": 764496,
          "status": "running",
          "tags": null,
          "delta": false,
          "duration": null,
          "hashed_id": "5747e47778fff269508d36c98beaff0b8f2f5722",
          "user_id": 783527,
          "updated_at": "2015-06-09T11:45:48Z"
        }
      }
    ],
    "id": 16214,
    "group_id": 764496,
    "user_id": null,
    "updated_at": "2015-06-16T19:39:42Z"
  }
}

The ProjectPOJO class used with GSON

public class ProjectPOJO {

    private Project project = new Project();

    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [project = " + project + "]";
    }

}

Project POJO

public class Project {

    private Integer id;
    private List<Build> builds = new ArrayList<Build>();
    private Integer group_id;
    private String created_at;
    private Object user_id;    
    private String name;
    private String updated_at;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public List<Build> getBuilds() {
        return builds;
    }
    public void setBuilds(List<Build> builds) {
        this.builds = builds;
    }
    public Integer getGroup_id() {
        return group_id;
    }
    public void setGroup_id(Integer group_id) {
        this.group_id = group_id;
    }
    public String getCreated_at() {
        return created_at;
    }
    public void setCreated_at(String created_at) {
        this.created_at = created_at;
    }
    public Object getUser_id() {
        return user_id;
    }
    public void setUser_id(Object user_id) {
        this.user_id = user_id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getUpdated_at() {
        return updated_at;
    }
    public void setUpdated_at(String updated_at) {
        this.updated_at = updated_at;
    }

    @Override
    public String toString() {
        return "Project [id=" + id + ", builds=" + builds + ", group_id="
                + group_id + ", created_at=" + created_at + ", user_id="
                + user_id + ", name=" + name + ", updated_at=" + updated_at
                + ", getId()=" + getId() + ", getBuilds()=" + getBuilds()
                + ", getGroup_id()=" + getGroup_id() + ", getCreated_at()="
                + getCreated_at() + ", getUser_id()=" + getUser_id()
                + ", getName()=" + getName() + ", getUpdated_at()="
                + getUpdated_at() + ", getClass()=" + getClass()
                + ", hashCode()=" + hashCode() + ", toString()="
                + super.toString() + "]";
    }    

}

Build POJO

public class Build {

    private AutomationBuild automationBuild = new AutomationBuild();

    public AutomationBuild getAutomationBuild() {
        return automationBuild;
    }

    public void setAutomationBuild(AutomationBuild automationBuild) {
        this.automationBuild = automationBuild;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [automation_build = " + automationBuild + "]";
    }

}

AutomationBuild POJO

package br.usp.icmc.beans;

public class AutomationBuild extends BaseAutomationBuild {

    private Integer id;
    private Integer group_id;   
    private Object tags;   
    private Integer automation_project_id;
    private String created_at;
    private Integer user_id;
    private Boolean delta;      
    private String updated_at;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getGroup_id() {
        return group_id;
    }
    public void setGroup_id(Integer group_id) {
        this.group_id = group_id;
    }
    public Object getTags() {
        return tags;
    }
    public void setTags(Object tags) {
        this.tags = tags;
    }
    public Integer getAutomation_project_id() {
        return automation_project_id;
    }
    public void setAutomation_project_id(Integer automation_project_id) {
        this.automation_project_id = automation_project_id;
    }
    public String getCreated_at() {
        return created_at;
    }
    public void setCreated_at(String created_at) {
        this.created_at = created_at;
    }
    public Integer getUser_id() {
        return user_id;
    }
    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }
    public Boolean getDelta() {
        return delta;
    }
    public void setDelta(Boolean delta) {
        this.delta = delta;
    }
    public String getUpdated_at() {
        return updated_at;
    }
    public void setUpdated_at(String updated_at) {
        this.updated_at = updated_at;
    }
    @Override
    public String toString() {
        return "AutomationBuild [id=" + id + ", group_id=" + group_id
                + ", tags=" + tags + ", automation_project_id="
                + automation_project_id + ", created_at=" + created_at
                + ", user_id=" + user_id + ", delta=" + delta + ", updated_at="
                + updated_at + ", getId()=" + getId() + ", getGroup_id()="
                + getGroup_id() + ", getTags()=" + getTags()
                + ", getAutomation_project_id()=" + getAutomation_project_id()
                + ", getCreated_at()=" + getCreated_at() + ", getUser_id()="
                + getUser_id() + ", getDelta()=" + getDelta()
                + ", getUpdated_at()=" + getUpdated_at() + ", getName()="
                + getName() + ", getDuration()=" + getDuration()
                + ", getStatus()=" + getStatus() + ", getHashed_id()="
                + getHashed_id() + ", toString()=" + super.toString()
                + ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
                + "]";
    }

}

The code I'm using

System.out.println(obj.getProject().getBuilds().get(0).getAutomationBuild().getHashed_id());

I tested:

System.out.println(obj.getProject()); 
            System.out.println(obj.getProject().getBuilds()); 
            System.out.println(obj.getProject().getBuilds().get(0)); 
System.out.println(obj.getProject().getBuilds().get(0).getAutomationBuild());

and the result:

Project [id=16214, builds=[ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028, toString()=br.usp.icmc.beans.AutomationBuild@2d7275fc], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028]], ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=966739377, toString()=br.usp.icmc.beans.AutomationBuild@399f45b1], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=966739377]]], group_id=764496, created_at=2014-11-23T01:01:59Z, user_id=null, name=Untitled Project, updated_at=2015-06-16T19:39:42Z, getId()=16214, getBuilds()=[ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028, toString()=br.usp.icmc.beans.AutomationBuild@2d7275fc], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028]], ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=966739377, toString()=br.usp.icmc.beans.AutomationBuild@399f45b1], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=966739377]]], getGroup_id()=764496, getCreated_at()=2014-11-23T01:01:59Z, getUser_id()=null, getName()=Untitled Project, getUpdated_at()=2015-06-16T19:39:42Z, getClass()=class br.usp.icmc.beans.Project, hashCode()=952562199, toString()=br.usp.icmc.beans.Project@38c6f217]
[ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028, toString()=br.usp.icmc.beans.AutomationBuild@2d7275fc], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028]], ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=966739377, toString()=br.usp.icmc.beans.AutomationBuild@399f45b1], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=966739377]]]
ClassPojo [automation_build = AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028, toString()=br.usp.icmc.beans.AutomationBuild@2d7275fc], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028]]
AutomationBuild [id=null, group_id=null, tags=null, automation_project_id=null, created_at=null, user_id=null, delta=null, updated_at=null, getId()=null, getGroup_id()=null, getTags()=null, getAutomation_project_id()=null, getCreated_at()=null, getUser_id()=null, getDelta()=null, getUpdated_at()=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, toString()=AbstractBuildAutomation [name=null, duration=null, status=null, hashed_id=null, getName()=null, getDuration()=null, getStatus()=null, getHashed_id()=null, getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028, toString()=br.usp.icmc.beans.AutomationBuild@2d7275fc], getClass()=class br.usp.icmc.beans.AutomationBuild, hashCode()=762476028]

Why am I receiving an null? Where am I wrong?

2
  • Try printing one by one like System.out.println(obj.getProject()); then System.out.println(obj.getProject().getBuilds()); then System.out.println(obj.getProject().getBuilds().get(0)); then System.out.println(obj.getProject().getBuilds().get(0).getAutomationBuild()); Commented Jun 26, 2015 at 21:18
  • 1
    check the answer I posted Commented Jun 26, 2015 at 21:49

1 Answer 1

1

In the Build class

public class Build {

private AutomationBuild automationBuild = new AutomationBuild();

the automationBuild should be automation_build .It should be like

public class Build {

private AutomationBuild automation_build= new AutomationBuild();

as the Json looks like

  "automation_build": {
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you very much for your help Madhan, now it's all working!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.