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

FakirTrappedInCode

假设我有这样的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。一个用于引用项目的元素,将具有两个字段(引用和名称,均作为字符串),一个用于雇员,还将具有两个字段(名称(字符串)和dob(长整数))。然后,您将需要一个额外的类来处理多个员工的项目组合(该类具有两个字段:一个项目和一个员工列表)。为了能够解析JSON,您将必须创建一个包裹JSON的DTO。该类将具有三个字段,一个是雇员列表,一个是项目列表,另一个是将雇员分配到项目的类列表。
例如这样的事情:

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重命名为更易读的名称

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Jackson将JSON对象键解析为整数?

如何使用Jackson将Color java类解析为JSON?

使用Jackson将JSON解析为对象

使用Jackson将列表或对象的JSON内容解析为List <A>

如何在SpringBoot中使用Jackson将JSON对象数组解析为DTO

如何在使用 Jackson 时解析嵌套的 json 对象

如何使用Jackson的ObjectMapper从JSON字符串创建对象?

使用Jackson 2.0解析JSON对象数组

使用Jackson解析复杂的JSON对象列表

使用Jackson解析Java中的JSON子集

com.fasterxml.jackson.databind.exc.MismatchedInputException,同时使用fastxml将json回复解析为对象

使用 Jackson 将 Json 字符串解析为 Kotlin 对象抛出 InvalidDefinitionException

使用Jackson将JSON字符串解析为原始Java类型?

使用Jackson的ObjectMapper的JSON对象的顺序

使用Jackson来流解析Json对象数组

如何使用Jackson解析具有可变对象名称的JSON?

使用gson / jackson java API解析json文件

如何使用 jackson 将 Json 映射到 Java 对象

使用Jackson的ObjectMapper解析具有动态类型(字符串或对象)的值的JSON

使用Jackson读取Json文件以获取以下Json结构并获取对象

如何使用以下输出为Currency Converter API设计JSON解析器实体对象

即使使用Scala Jackson出错,也如何遍历JSON对象

如何使用 Jackson 从 Json 文件中读取特定对象

如何使用jackson从JsonNode对象以String形式检索JSON元素?

如何使用Spring 2创建基于Jackson的JSON Rest服务

Jackson将JSON对象解析为对象数组

让Jackson将Json对象解析为原始String

如何使用 Jackson/ObjectMapper 将注释(其所有差异属性)转换为 JSON 对象?

JAVA-使用FasterXml.Jackson将XML文件解析为Map