我有一个示例虚拟 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
}
上面是一个愚蠢的例子,但它有助于说明我在尝试使用 Jackson 将上面的内容反序列化为名为“Employee”的 Java 类时遇到的问题:
public class Employee {
String name;
String address;
String phoneNumber;
}
问题是 JSON 有两个不同的前缀,所以我不能注释 Employee 中的每个字段,也不能让对象映射器将 teacher_name 和 student_name 映射到 Employee 对象中的名称字段。 Jackson 有没有办法指定两个不同名称的节点映射到同一个 Java 字段?
最佳答案
So in my example, I should end up with two Employee objects (I am guaranteed to have one pair per response)
这对 jackson 来说是不可能的。它旨在一对一映射:一个 json 对象到一个 java 对象。但是您想从一个 json 中得到两个 java 对象。
我建议您通过实现一些处理级别来使用海峡前进的方式,该处理级别将使用 Response
并将其映射到两个 Employee
对象。
关于java - 将两个相似的 json 字段编码到同一个 java 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094751/