Проблема соглашения об именовании Джексона при сериализации с необычным именем метода получения - PullRequest
0 голосов
/ 04 января 2019

плохо знакомы с Java и весенней загрузкой.

При попытке сериализации следующего класса,

public class ActionItems {

private String APpID; 

public String getAPpID() {
    return APpID;
}

public void setAPpID(String aPpID) {
    APpID = aPpID;
}

// other fields
}

получил строку json как

{
"appID": null,     
}

Хотя перекрестная проверка имени получателя с помощью decapitilize () совпадает с именем поля.

Introspector.decapitalize("APpID") - gives "APpID"

Использует ли Джексон другой набор правил и методов при создании имени свойства из метода getter?

PS: я знаю, что имя переменной должно начинаться с малого регистра. При прохождении спецификации соглашения о именовании Java-бинов возник этот вопрос.

Я использую Jackson 2.9.3v.

PS: По ссылке PropertyNamingStrategy , он должен был произвести APpID вместо appId, верно?

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

Спасибо.

1 Ответ

0 голосов
/ 04 января 2019

В Джексоне вы можете настроить PropertyNamingStrategy и

При отсутствии зарегистрированной пользовательской стратегии свойство Java по умолчанию используется стратегия именования, которая оставляет имена полей как есть и удаляет set / get / is префикс из методов (а также строчные начальные последовательность заглавных букв).

Кроме того, вы можете настроить имя свойства, например:

@JsonProperty("APpID") // produce {"APpID":"s"}
public String getAPpID() {
    return APpID;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...