首页 > 解决方案 > java - 如何在Java Spring Boot中将一个对象映射到另一个对象

问题描述

我正在寻找将存储的过程结果映射到对象的方法:

存储过程返回 Map<String, Object> 为:

{
    "O_TOKEN_EXISTS": "true",
    "O_TOKEN_VERIFICATION": "verification",
    "O_PROMOTION_ID": "11223344",
    "O_FFA": "ffa",
    "O_MMI": null,
    "O_VALIDITY_DURATION": 60,
    "O_MOP_ELIGIBILITY": "eligibility"
}

我需要映射的对象如下所示:

public class ResultObject {

    @JsonProperty("FFA")    
    private String ffa;

    @JsonProperty("ValidityDuration")
    private BigDecimal validityDuration;

    @JsonProperty("Capabilities")
    private List<Capability> capabilities = null;

和能力看起来像

public class Capability {

    @JsonProperty("name")
    private String name;

    @JsonProperty("value")
    private Boolean value;
}

结果我需要得到这个:

{
    "FFA": "ffa",
    "ValidityDuration": 60,
    "Capabilities": [
        {
            "name": "MOP",
            "value": true
        },
        {
            "name": "PINVerification",
            "value": true
        },
        {
            "name": "MMI",
            "value": false
        }
    ]
}

如何设置能力对我来说是一个大问题,例如,如果第一个 obj 中有“O_MOP_ELIGIBILITY”的值,它应该将能力设置为

{
 "name": "MOP",
 "value": true
 }

如果值不在第一个对象中,例如“O_MMI”:null,我需要这样设置:

 {
  "name": "MMI",
  "value": false
  }

标签: javaspring-bootdatamapperjackson-databind

解决方案


推荐阅读