【问题标题】:Spring Rest: Mapping a property of a bean as nested JSONSpring Rest:将 bean 的属性映射为嵌套 JSON
【发布时间】:2020-08-24 08:13:01
【问题描述】:

我的 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 spring spring-boot spring-restcontroller


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 2020-04-02
      相关资源
      最近更新 更多