In meinem Legacy-Code sind einige Formularfelder auf unkonventionelle Weise definiert, z. B. durch die Verwendung von Unterstrichen und Großbuchstaben. Das Problem ist, dass sich die neue Spring Boot-Version 4 beim Rendern der JSON-Antwort anders verhält. Die Groß-/Kleinschreibung ist unterschiedlich. Sehen Sie sich dieses Beispiel an, in dem ich dasselbe DTO für beide Versionen 3 und 4 verwende, die JSON-Antwort jedoch unterschiedlich ist:
Code: Select all
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"};
}
}
Code: Select all
{
"firstName": "name",
"lcg": "2",
"lcg_MAP": "3",
"prtasks": [
"arr1"
]
}
Code: Select all
{
"firstName": "name",
"LCG": "2",
"LCG_MAP": "3",
"PRTasks": [
"arr1"
]
}
Und es gibt eine andere Lösung, um den Jackson's Mapper Builder mit dem folgenden Code zu überschreiben, aber das funktioniert nicht für die verschachtelten Felder:
Code: Select all
@Bean
public JsonMapperBuilderCustomizer jsonCustomizer() {
return builder -> builder.propertyNamingStrategy(new ForceDecapitalizeStrategy());
}
Mobile version