gpt4 book ai didi

java - 我如何使用 Jackson 解析以下 JSON。为使用 Jackson ObjectMapper 创建的最相关的 java 对象是什么?

转载 作者:行者123 更新时间:2023-11-29 04:57:55 25 4
gpt4 key购买 nike

假设我有一个像这样的 JSON 响应:

[{
"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。一个用于引用 Projects 的元素,它将有两个字段(reference 和 name,都是字符串),一个用于 Employees,它也将有两个字段(name (String) 和 dob (Long))。然后你将需要一个额外的类来处理一个项目到多个员工的组合(这个类有两个字段:一个项目和一个员工列表)。为了能够解析 JSON,您必须创建一个包装 JSON 的 DTO。该类将包含三个字段,一个是员工列表,一个是项目列表,一个是将员工分配给项目的类(class)列表。
例如这样的事情:

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
}

然后您可以使用 CompleteJSON-Class 解析您的 JSON
您应该将 DTO 重命名为更具可读性的名称

关于java - 我如何使用 Jackson 解析以下 JSON。为使用 Jackson ObjectMapper 创建的最相关的 java 对象是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33076892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com