Spring 其余:将 bean 的 属性 映射为嵌套 JSON

Spring Rest: Mapping a property of a bean as nested JSON

我的 Spring REST 控制器需要映射一个如下所示的对象参数:

{
    "batchId": 43091,
    "domain": "XX",
    "code": "XXX",
    "effectiveDate": "2020-02-13",
    "status": "Y",
    "result": [{"ruleName":"name",...]}]
}

我在想出将这些数据转换成 DTO 时遇到了问题。到目前为止我所拥有的是这样的:

@Data
@NoArgsConstructor
@EqualsAndHashCode
public class ValidationResult {
    private String result;
    private String status;
    private String batchId;
    private String domain;
    private String code;
    private String effectiveDate;
}

但是包含嵌入的 JSON 的 result 始终为空。我不关心 JSON 被映射,因为我将它作为 JSON 类型存储在数据库 (Postgresql) 中。但是我需要声明什么 Java 类型才能让控制器转换它?我尝试将其设为 javax.json.JsonObject,但失败了。

我们对那些 json 输入所做的总是将它们映射到特定的 classes。这意味着,在您的情况下,结果可能是一个 class,它本身包含给定字段 "ruleName" 及其类型。然后您的验证结果包含一个私有结果结果。如果命名约定非常正确,使用的映射器将能够将响应转换并映射到 class 及其属性。