有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Spring Boot应用程序的JSON中包含嵌套对象

有谁能指导我如何将JSON对象激活嵌套在JSON对象数据下

请参见下面的myJSON

{
    "status": "Success",
    "DATA": {
        "aid": "0",
        "app": "OASIS_EDGE",
        "actkey": "STAR2020",
        "expiredate": "2025-08-05 04:40:28.0",
        "partner": "X",
        "nsp": "NAD"
    }
}

JSON的JSON我实际上期望:

{
    "STATUS": "SUCCESS",
    "DATA": {
        "ACTIVATION": {
            "aid": "0",
            "app": "OASIS_EDGE",
            "actkey": "STAR2020",
            "expiredate": "2025-08-05 04:40:28.0",
            "partner": "X",
            "nsp": "NAD"
        }
    }
}

这是我的激活响应。java类负责创建JSON

public class ActivationResponse {   
    
    private String Status;
        
    public String getStatus()
    {
        return Status;
    }
    
    public void setStatus(String Status) {
        this.Status = Status;
    }
    
    @JsonProperty("DATA")   
        
    private ActivationModel activationData;
     
    
    public ActivationModel getActivationData() {
        return activationData;
    }

    public void setActivationData(ActivationModel activationData2) {
        this.activationData = activationData2;
    }

}

共 (2) 个答案

  1. # 1 楼答案

    1. 使用com中的JsonNode。fasterxml。杰克逊。数据绑定。JsonNodea la:
    import com.fasterxml.jackson.databind.JsonNode;
    
    public class ActivationResponse {
        
        private String Status;
    
        private JsonNode activationData;
            
        public String getStatus() return Status;
        
        public void setStatus(String Status) this.Status = Status;  
        
        public ActivationModel getActivationData() return activationData;
    
        public void setActivationData(ActivationModel activationData2) {
            activationData = activationData2;
        }
    }
    
    1. 使用来自java的好的“ol映射”。util。映射像这样:
    import java.util.Map;
    
    public class ActivationResponse {
        
        private String Status;
    
        private Map<String, Object> activationData;
            
        public String getStatus() return Status;
        
        public void setStatus(String Status) this.Status = Status;  
        
        public ActivationModel getActivationData() return activationData;
    
        public void setActivationData(ActivationModel activationData2) {
            activationData = activationData2;
        }
    }
    

    我无耻地借用了这个tutorial(没有附属关系)

  2. # 2 楼答案

    由于需要在数据下激活,因此需要一个带有激活字段的类数据,如下面的示例所示

    class MyJson {
      private String Status;
    
      @JsonProperty("DATA")   
      private DataModel data;
    };
     
    class DataModel {
      @JsonProperty("ACTIVATION")   
      private ActivationModel activation;
    };