Как @JsonProperty («имя») будет учитываться при именах методов-геттеров в сериализации json? - PullRequest
0 голосов
/ 07 января 2019

Впервые в весенний загрузки и Java.

Проходя сериализацию по Джексону, получил следующий вопрос.

"Как будет обрабатываться имя JsonProperty, если поле является открытым / закрытым с совпадающими / не совпадающими именами методов получения?"

Случай 1: -

public class FeedbackRequest {

   @JsonProperty("vzIdCurrentValue")
   private/public String vzId;

    public String getVzId() {
    return vzId;
}

public void setVzId(String vzId) {
    this.vzId = vzId;
}

}

Случай 2: -

public class FeedbackRequest {

   @JsonProperty("vzIdCurrentValue")
   public String vzIdValue;

    public String getVzId() {
    return vzIdValue;
}

public void setVzId(String vzId) {
    this.vzIdValue = vzId;
}   
}

Результат десериализации: -

Дело 1: - { "vzIdCurrentValue": null}

Случай 2: - {"vzId": null, "vzIdCurrentValue": null}

Вопросы: -

  1. Будет ли использоваться имя jsonproperty, когда имя получателя точно совпадает с именем поля? (например: независимо от спецификатора доступа, т. е. случай 1)

  2. Отдельные имена свойств будут использоваться, когда имя получателя не совпадает точно с именем поля? (один для метода получения и другой для открытого поля [имя свойства json используется вместо имени поля, если присутствует @JsonProperty, в противном случае имя поля по умолчанию])?

PS: случай 2 используется только для тестирования.

Может ли кто-нибудь поправить меня, если я здесь не прав?

...