#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») для методов установки.