Convert bean to flattern the json

Viewed 30

Request:

{
   "messageHeader":{
      "serviceId":"SPECTRUM_MOBILE",
      "requestType":"MNO",
      "referenceNumber":"2343422324340239243223"
   },
   "data":{
      "transactionType":"GD",
      "transactionTimeStamp":"2020-07-13T18:42:37Z",
      "deviceId":[
         {
            "type":"IMEI",
            "value":"3371869789537"
         }
      ],
      "simId":[
         {
            "type":"ICCID",
            "value":"787109194753727"
         }
      ],
      "status":[
         {
            "type":"migrationStatus",
            "value":"MIGRATED"
         }
      ]
   }
}
   

Expected Response:

{
   "serviceId":"SPECTRUM_MOBILE",
   "requestType":"MNO",
   "referenceNumber":"2343422324340239243223",
   "IMEI":"3371869789537",
   "ICCID":"787109194753727",
   "migrationStatus":"MIGRATED"
}

Actual Response:

flatterJson:::com.excelacom.wearable.bean.FlatterJson@3043fe0e

Pojo class:

    package com.excelacom.wearable.bean;
    
    import com.fasterxml.jackson.annotation.JsonAlias;
    import com.fasterxml.jackson.annotation.JsonUnwrapped;
    
    import groovy.transform.SelfType;
    import lombok.Getter;
    import lombok.Setter;
    import lombok.ToString;
    
    @Getter
    @Setter
    @ToString
    public class FlatterJson {
    
        @JsonUnwrapped
        private MessageHeader messageHeader;
    
        @JsonUnwrapped
        private Data data;
    }
    
    @Getter
    @Setter
    @ToString
    class MessageHeader {
    
        private String serviceId;
    
        private String requestType;
    
        private String referenceNumber;
    
    }
    
    @Getter
    @Setter
    @ToString
    class Data {
    
        @JsonUnwrapped
        private DeviceId deviceId;
    
        @JsonUnwrapped
        private SimId simId;
    
        @JsonUnwrapped
        private SimId status;
    }
    
    @Getter
    @Setter
    @ToString
    class DeviceId {
    
        @JsonAlias("IMEI")
        private String value;
    
    }
    
    @Getter
    @Setter
    @ToString
    class SimId {
    
        @JsonAlias("ICCID")
        private String value;
    
    }
    
    @Getter
    @Setter
    @ToString
    class status {
    
        @JsonAlias("migrationStatus")
        private String value;
    
    }

Request needs to be set in pojo class and response should be flatten json.

0 Answers
Related