В моем устаревшем коде некоторые поля формы определяются нетрадиционным способом, например, с использованием символов подчеркивания и заглавных букв. Проблема в том, что новая версия загрузки Spring 4 ведет себя по-другому при рендеринге JSON В ответе регистр букв другой, см. этот пример, где я использую один и тот же DTO для версий 3 и 4, но ответ JSON отличается:
Код: Выделить всё
class Test {
public String getFirstName() {
return "name";
}
public String getLCG() {
return "2";
}
public String getLCG_MAP() {
return "3";
}
public String[] getPRTasks() {
return new String[]{"arr1"};
}
}
Код: Выделить всё
{
"firstName": "name",
"lcg": "2",
"lcg_MAP": "3",
"prtasks": [
"arr1"
]
}
Код: Выделить всё
{
"firstName": "name",
"LCG": "2",
"LCG_MAP": "3",
"PRTasks": [
"arr1"
]
}
И есть еще одно решение, позволяющее переопределить построитель картографа Джексона, используя этот код ниже, но это не работает для вложенных полей:
Код: Выделить всё
@Bean
public JsonMapperBuilderCustomizer jsonCustomizer() {
return builder -> builder.propertyNamingStrategy(new ForceDecapitalizeStrategy());
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... -v3-and-v4
Мобильная версия