如何将 JSON (org.jooq.JSON) 转换为 Java 对象 (POJO)

How to convert JSON (org.jooq.JSON) to Java Object (POJO)

我尝试了很多方法来找到将 JSON 对象 (org.jooq) 转换为 java 对象 (pojo) 的方法。我正在开发 spring-boot 应用程序,使用 jOOQ 与数据库对话。

实际上我在数据库中有一个 employee_details table 如下所示:

上面table有员工详细信息,tableemp_address列类型是JSON数据类型

现在我想从 table 中检索一个 employee_details,其中 id=X 并且我试图将详细信息存储在下面的 java 对象 class (POJO) 中.

员工详情class:

@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmployeeDetails {
    private int              id;
    private String           emp_name;
    private String           emp_email;
    private String           emp_mobile;
    private EmployeeAddress  emp_address;
}

员工地址class:

@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmployeeAddress {

    private String hNo;
    private String city;
    private String pincode;
}

但是当我尝试从 table 中检索详细信息时,我在 Json 中存储了 emp_address(这是 table 中的 json 数据类型) (org.jooq)如下图class.

员工详情JSONJooQ class:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jooq.JSON;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmployeeDetailsJSONJooQ {
    private  int        id;
    private  String     emp_name;
    private  String     emp_email;
    private  String     emp_mobile;
    private  JSON       emp_address;
}

在这里我想检索 EmployeeDetails 对象中的员工详细信息或帮助我将 EmployeeDetails 对象转换为 EmployeeDetailsJSONJooQ 对象或如何使用 Mapstruct[=47 映射这些对象=].请帮帮我

如果你对 JSON 应该如何映射到你的 POJO 不太有意见,那么将 Gson 或 Jackson 放在你的类路径上就足够了,jOOQ 会选择它并映射 JSON 自动添加到您的 POJO,请参阅 this section of the manual about the ConverterProvider

例如这应该开箱即用:

List<EmployeeDetails> list =
ctx.selectFrom(EMPLOYEE_DETAILS)
   .fetchInto(EmployeeDetails.class);