не может ответить поле 'isOk' в весенней загрузке - PullRequest
1 голос
/ 03 мая 2019

Я создаю API CreateOrUpdateProduct, используя Spring boot. я хочу вернуть потребителю два поля ('message & isOk'). Но когда я исполняю этот API, я получаю ('message & ok') поля. что произошло? пожалуйста, расшири меня. спасибо заранее!

это моя функция

public ResponseBase CreateOrUpdateProduct(Product product) {

        ....
        return responseBase;
    }
public class ResponseBase {
boolean isOk;
public boolean isOk() {
    return isOk;
}
public void setOk(boolean isOk) {
    this.isOk = isOk;
}
public String getMessage() {
    return message;
}
public void setMessage(String message) {
    this.message = message;
}
String message;
}

я получил

{
  "message":null,
  "ok": true
}

Ответы [ 2 ]

1 голос
/ 03 мая 2019

Вы должны переименовать ваш геттер в getIsOk().

Будет возвращен ожидаемый ответ:

{
  "message":null,
  "isOk": true
}
1 голос
/ 03 мая 2019

Я думаю, что ваш ответ здесь: Джексон переименовывает логическое поле, удаляя это

Джексон (сериализатор) видит "isOk" как метод get логической переменной с именем "ok".Это распространенный шаблон именования, используемый разработчиками в методах get для логических переменных.

РЕДАКТИРОВАТЬ:

Вы не должны устанавливать имя вашего метода в "getIsOk",потому что это не соответствует соглашению об именах метода get для логических переменных.Это не очень хорошее решение, но оно будет работать.

Джексон предоставит вам аннотацию, которая задает имя сериализованной переменной:

@JsonProperty(value="isOk")
public boolean isOk() {
  return isOk;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...