java - 将两个相似的 json 字段编码到同一个 java 字段

标签 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
    }

上面是一个愚蠢的例子,但它有助于说明我在尝试使用 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/

相关文章:

java - 使用 JSONConfiguration.FEATURE_POJO_MAPPING 的 HTTP 错误代码 422

java - 如何处理 Spring Boot Rest 和 Jackson Deserializer 的 Javax 验证中的无效数字

java - Android Studio 中的 JSON 项列表

c# - 将 IOptions 传递到 .Net 核心中间件类以进行 json 配置检索

Java Spring RequestParam 为 null

json - 使用 gin gonic 返回文字 JSON 的最简单方法

json - 返回一个简单的 JSON 响应

json - jackson : Filter null or blank values while converting json string response to pojo conversion using jackson

java - Android singleTask + AsyncTask 和意外的变量值变化

java - Java 访问修饰符的可访问性范围