Spring boot-Jersey Jackson
Ich habe eine Frage in Bezug auf die Jackson-Konfiguration auf meiner Spring-boot-Projekt
Wie beschrieben auf spring boot blog
Ich versuche, passen Sie mein Objekt-Serialisierung.
Nachdem es wurde eine neue config-Bohne in meiner config
@Bean
public Jackson2ObjectMapperBuilder jacksonBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.propertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
return builder;
}
Wenn ich versuche die Ausgabe eine Instanz meiner Klasse User das json-Ergebnis ist nicht in CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
Class User {
private String firstName = "Joe Blow";
public String getFirstName() {
return firstName;
}
}
json-Ausgabe ist :
{
"firstName": "Joe Blow"
}
und nicht
{
"first_name": "Joe Blow"
}
Vielleicht brauche ich zu registrieren, was in meiner Jersey-config zu aktivieren mein custom obejctMapper Config
@Configuration
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
packages("my.package);
}
}
Dank
- Ich direkt konfiguriert die ObjectMapper wie eine Bohne, nicht die Builder. Hast du es versucht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Allgemeine Konfiguration des
ObjectMapper
für JAX-RS/Jersey-Anwendungen, ist einContextResolver
. Zum BeispielSollte es abgeholt werden mit dem Paket zu Scannen, oder Sie können explizit registrieren, wenn es nicht innerhalb der Paket-Umfang
Den
ContextResolver
wird aufgerufen, während das marshalling und unmarshalling. Die Klasse/Typ serialzed oder deserialisiert in verabschiedet werden, um diegetContext
Methode. So könnte man auch mehr als einen mapper für verschiedene Arten, oder sogar noch mehr Anwendungsfälle.UPDATE
Ab Frühjahr Boot-1.4, können Sie einfach erstellen Sie eine
ObjectMapper
Spring-bean und Spring Boot wird erstellen Sie dieContextResolver
für Sie, und verwenden Sie IhreObjectMapper
ObjectMapper
als Spring-bean, könnte man injiziert in der ContextResolver. Aber jetzt, es wird nur verwendet, direkt mit Jersey und seine request-Verarbeitung. Der Frühling wird nie beteiligt.