如何使用Jackson解析下面的JSON。使用Jackson ObjectMapper创建的最相关java对象是什么?
假设我有一个JSON响应,如下所示:如何使用Jackson解析下面的JSON。使用Jackson ObjectMapper创建的最相关java对象是什么?,java,json,jackson,Java,Json,Jackson,假设我有一个JSON响应,如下所示: [{ "employees" : [{ "name" : "Peter", "dob" : "19850101" }, { "name" : "Mark", "dob" : "19850202" }, {
[{
"employees" : [{
"name" : "Peter",
"dob" : "19850101"
}, {
"name" : "Mark",
"dob" : "19850202"
}, {
"name" : "Steve",
"dob" : "19850303"
}
],
"projects" : [{
"reference" : "P1",
"name" : "Project One",
}, {
"reference" : "P2",
"name" : "Project Two",
}, {
"reference" : "P3",
"name" : "Project Three",
}
],
"projectMembers" : [{
"project" : {
"reference" : "P1"
},
"employees" : [{
"name" : "Peter",
"dob" : "19850101"
}, {
"name" : "Steve",
"dob" : "19850303"
}
]
}, {
"project" : {
"reference" : "P2"
},
"employees" : [{
"name" : "Peter",
"dob" : "19850101"
}, {
"name" : "Mark",
"dob" : "19850101"
}, {
"name" : "Steve",
"dob" : "19850303"
}
]
},
]
}
]
如何使用Jackson解析这个JSON。使用Jackson ObjectMapper创建的最相关java对象是什么?或者应该使用任何自定义反序列化程序来处理此问题?在我看来,您将需要两个基本DTO。一个用于引用项目的元素,它将有两个字段(引用和名称,均为字符串),另一个用于雇员,它也将有两个字段(名称(字符串)和dob(长))。然后,您将需要一个额外的类来处理一个项目对多个员工的组合(这个类有两个字段:一个项目和一个员工列表)。为了能够解析JSON,您必须创建一个DTO来包装JSON。该类将有三个字段:一个员工列表、一个项目列表和一个将员工分配到项目的类列表。
例如,类似这样的事情:
public class Employee{
private String name;
private Long dob;
//default constructor and getter/setter
}
public class Project{
private String reference;
private String name;
//default constructor and getter/setter
}
public class EmployeesToProject{
private Project project;
private List<Employee>;
//default constructor and getter/setter
}
public class CompleteJSON{
private List<Employee> employees;
private List<Project> projects;
private List<EmployeesToProject> projectMembers;
//default constructor and getter/setter
}
公共类员工{
私有字符串名称;
私人长dob;
//默认构造函数和getter/setter
}
公共类项目{
私有字符串引用;
私有字符串名称;
//默认构造函数和getter/setter
}
公共类员工项目{
私人项目;
私人名单;
//默认构造函数和getter/setter
}
公共类CompleteJSON{
私人名单雇员;
私人清单项目;
私人名单项目成员;
//默认构造函数和getter/setter
}
然后可以使用CompleteJSON类解析JSON您应该将DTO重命名为更可读的名称