我正在尝试从POJO中的List恢复JSON数组。
JSON字符串
{
"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"
}
}
与GSON一起使用的ProjectPOJO类
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 + "]";
}
}
项目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() + "]";
}
}
建立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()
+ "]";
}
}
我使用的代码
System.out.println(obj.getProject().getBuilds().get(0).getAutomationBuild().getHashed_id());
我测试过:
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());
结果:
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]
为什么我收到空?我哪里错了?
答案 0 :(得分:1)
在Build类
中vector
public class Build {
private AutomationBuild automationBuild = new AutomationBuild();
应为automationBuild
。它应该像
automation_build
因为Json看起来像
public class Build {
private AutomationBuild automation_build= new AutomationBuild();