将两个类似的json字段编组到同一个java字段

Joh*_*aum 5 java json jackson

我有一个示例虚拟JSON响应,如下所示:

    {
        "id": 1,
        "teacher_name": "Foo",
        "teacher_address": "123 Main St.",
        "teacher_phone_num": 1234567891,
        "student_name": "Bar",
        "student_address": "546 Main St.",
        "student_phone_num": 9184248576
    }
Run Code Online (Sandbox Code Playgroud)

以上是一个愚蠢的例子,但它有助于说明我试图使用Jackson将上述内容反序列化为名为"Employee"的Java类:

public class Employee {
    String name;
    String address;
    String phoneNumber;
}
Run Code Online (Sandbox Code Playgroud)

问题是JSON有两个不同的prepends所以我不能在Employee中注释每个字段,并且让对象映射器将teacher_name和student_name映射到Employee对象中的name字段.杰克逊有没有办法指定两个不同名称的节点来映射到同一个Java字段?

Sas*_*ota 3

因此,在我的示例中,我最终应该得到两个 Employee 对象(我保证每个响应都有一对)

对于杰克逊来说这是不可能的。它旨在一对一映射:一个 json 对象到一个 java 对象。但是您希望最终从一个 json 中得到两个 java 对象。

我建议您通过实现一些处理级别来采用直接的方式,该处理级别将消耗Response并将其映射到两个Employee对象。