Heim > Java > javaLernprogramm > Wie konfiguriere ich ObjectMapper im Frühjahr für die benutzerdefinierte JSON-Serialisierung und Deserialisierung?

Wie konfiguriere ich ObjectMapper im Frühjahr für die benutzerdefinierte JSON-Serialisierung und Deserialisierung?

Mary-Kate Olsen
Freigeben: 2024-12-05 07:15:16
Original
857 Leute haben es durchsucht

How to Configure ObjectMapper in Spring for Custom JSON Serialization and Deserialization?

ObjectMapper in Spring konfigurieren

In Spring kann der ObjectMapper entsprechend spezifischer Anforderungen konfiguriert werden. Dies ist besonders nützlich, wenn Sie das Serialisierungs- und Deserialisierungsverhalten Ihrer JSON-Daten steuern möchten.

Ein häufiges Szenario besteht darin, bestimmte Eigenschaften von der Serialisierung auszuschließen, sofern sie nicht explizit mit Anmerkungen versehen sind. Um dies zu erreichen, folgen wir diesen Schritten:

  1. Erstellen Sie einen benutzerdefinierten ObjectMapper:

    public class CompanyObjectMapper extends ObjectMapper {
        public CompanyObjectMapper() {
            super();
            setVisibilityChecker(getSerializationConfig()
                    .getDefaultVisibilityChecker()
                    .withCreatorVisibility(JsonAutoDetect.Visibility.NONE)
                    .withFieldVisibility(JsonAutoDetect.Visibility.NONE)
                    .withGetterVisibility(JsonAutoDetect.Visibility.NONE)
                    .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
                    .withSetterVisibility(JsonAutoDetect.Visibility.DEFAULT));
        }
    }
    Nach dem Login kopieren
  2. Fügen Sie den benutzerdefinierten ObjectMapper in Spring's ein Konfiguration:

    <bean>
    Nach dem Login kopieren
  3. Konfigurieren Sie Spring MVC für die Verwendung des benutzerdefinierten ObjectMapper:

    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                    <property name="objectMapper" ref="jacksonObjectMapper" />
                </bean>
            </list>
        </property>
    </bean>
    Nach dem Login kopieren

Dieser Ansatz funktioniert jedoch möglicherweise nicht wie erwartet, wenn Sie die Spring-Versionen 3.0.5 und Jackson 1.8.0 verwenden. Um dieses Problem zu beheben, wird empfohlen, die folgende annotationsbasierte Konfiguration mit Spring Boot und Jackson 2.4.6 oder neuer zu verwenden:

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);

        return mapper;
    }
}
Nach dem Login kopieren

Diese Konfiguration ermöglicht es dem ObjectMapper, nur Eigenschaften zu serialisieren, die das @ haben JsonProperty-Annotation, die die gewünschte Anforderung erfüllt.

Das obige ist der detaillierte Inhalt vonWie konfiguriere ich ObjectMapper im Frühjahr für die benutzerdefinierte JSON-Serialisierung und Deserialisierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage