簡體   English   中英

如何用Jackson解析下面的JSON。 使用Jackson ObjectMapper創建的最相關的java對象是什么?

[英]How do I parse the below JSON with Jackson. What is the most relevant java object to create for using Jackson ObjectMapper?

假設我有這樣的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"
                        }
                    ]
                },
            ]
        }
    ]

我如何用傑克遜解析這個JSON。 使用Jackson ObjectMapper創建的最相關的java對象是什么? 或者這應該使用任何自定義反序列化器來處理?

在我的意見中,您將需要兩個基本的DTO。 一個用於引用Projects的元素,它們有兩個字段(引用和名稱,都是字符串)和一個Employees,它們也有兩個字段(name(String)和dob(Long))。 然后,您將需要一個額外的類來處理項目與多個員工的組合(此類有兩個字段:一個項目和一個員工列表)。 為了能夠解析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重命名為更具可讀性的東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM