JSON-Antwortunterschied in Spring Boot v3 und v4Java

Java-Forum
Anonymous
 JSON-Antwortunterschied in Spring Boot v3 und v4

Post by Anonymous »

Ich migriere die Spring Boot REST API Version 3.x auf die neue Version 4 und bemerke Unterschiede in der Groß-/Kleinschreibung in der JSON-Antwort. Ich verwende keinen externen JSON-Parser.
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"};
}
}
JSON-Antwort für Spring Boot 3:

Code: Select all

{
"firstName": "name",
"lcg": "2",
"lcg_MAP": "3",
"prtasks": [
"arr1"
]
}
JSON-Antwort für Spring Boot 4:

Code: Select all

{
"firstName": "name",
"LCG": "2",
"LCG_MAP": "3",
"PRTasks": [
"arr1"
]
}
Ich weiß, dass dieser Legacy-Code schlechte Namenskonventionen verwendet, und es gibt Hunderte solcher Beispiele und Tausende von Dateien, daher möchte ich diese Felder vorerst nicht umbenennen.
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());
}
Wie behalte ich also beim JSON-Rendering die gleiche Groß-/Kleinschreibung bei wie v3 bei v4, ohne auch Hunderte von Feldern und das Frontend umzubenennen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post