Весна, добавляющая дополнительные ключи при возврате объекта java в ответе API

#spring #spring-boot #apache-kafka #jackson #objectmapper

#spring #весна-загрузка #apache-kafka #джексон #objectmapper

Вопрос:

Я столкнулся с проблемой, когда Spring добавляет дополнительные ключи к моему объекту ответа. Я прикрепил ответ ниже (ответ-2).

Я также попытался удалить @JsonProperty, но это также не работает, потому что все ключи в нижнем регистре.

ТРЕБУЕМЫЙ РЕЗУЛЬТАТ: я хочу, чтобы все мои ключи были прописными, поскольку я объявил их в классе POJO. Я буду отправлять JSON через Kafka.

БЕЗ @JsonProperty:

 {
    "watchlsttype": null,
    "acctno": null,
    "chg_TYPE": null,
    "status": null,
    "rec_TYPE": null,
    "lstchgtimestamp": null,
    "expirytimestamp": null
}
 

API:

 @GetMapping(value = "/dummyAPI")
    public Object dummyAPI() throws Exception {
        return new InteracAccountAllowList();
    }
 

ОТВЕТ -2:

 {
    "ACCTNO": null,
    "EXPIRYTIMESTAMP": null,
    "LSTCHGTIMESTAMP": null,
    "WATCHLSTTYPE": null,
    "STATUS": null,
    "CHG_TYPE": null,
    "REC_TYPE": null,
    "lstchgtimestamp": null,
    "expirytimestamp": null,
    "status": null,
    "rec_TYPE": null,
    "watchlsttype": null,
    "chg_TYPE": null,
    "acctno": null
}
 

КЛАСС:

 import com.fasterxml.jackson.annotation.JsonProperty;
    
    public class InteracAccountAllowList {
    
        @JsonProperty
        private String ACCTNO;
    
        @JsonProperty
        private String EXPIRYTIMESTAMP;
    
        @JsonProperty
        private String LSTCHGTIMESTAMP;
    
        @JsonProperty
        private String WATCHLSTTYPE;
    
        @JsonProperty
        private String STATUS;
    
        @JsonProperty
        private String CHG_TYPE;
    
        @JsonProperty
        private String REC_TYPE;
    
        public String getACCTNO() {
            return ACCTNO;
        }
    
        public void setACCTNO(String aCCTNO) {
            ACCTNO = aCCTNO;
        }
    
        public String getEXPIRYTIMESTAMP() {
            return EXPIRYTIMESTAMP;
        }
    
        public void setEXPIRYTIMESTAMP(String eXPIRYTIMESTAMP) {
            EXPIRYTIMESTAMP = eXPIRYTIMESTAMP;
        }
    
        public String getLSTCHGTIMESTAMP() {
            return LSTCHGTIMESTAMP;
        }
    
        public void setLSTCHGTIMESTAMP(String lSTCHGTIMESTAMP) {
            LSTCHGTIMESTAMP = lSTCHGTIMESTAMP;
        }
    
        public String getWATCHLSTTYPE() {
            return WATCHLSTTYPE;
        }
    
        public void setWATCHLSTTYPE(String wATCHLSTTYPE) {
            WATCHLSTTYPE = wATCHLSTTYPE;
        }
    
        public String getSTATUS() {
            return STATUS;
        }
    
        public void setSTATUS(String sTATUS) {
            STATUS = sTATUS;
        }
    
        public String getCHG_TYPE() {
            return CHG_TYPE;
        }
    
        public void setCHG_TYPE(String cHG_TYPE) {
            CHG_TYPE = cHG_TYPE;
        }
    
        public String getREC_TYPE() {
            return REC_TYPE;
        }
    
        public void setREC_TYPE(String rEC_TYPE) {
            REC_TYPE = rEC_TYPE;
        }
    
    }
 

Ответ №1:

Ответ довольно прост: используйте @JsonProperty(«FIELD_NAME») для методов установки.