Heim >Java >javaLernprogramm >Wie konfiguriere ich den ObjectMapper von Spring so, dass nur mit @JsonProperty annotierte Felder serialisiert werden?
ObjectMapper in Spring konfigurieren: Feldserialisierung einschränken
Um den ObjectMapper so zu konfigurieren, dass nur mit @JsonProperty annotierte Felder serialisiert werden, sollten Sie den folgenden Ansatz in Betracht ziehen:
1. Erstellen Sie einen benutzerdefinierten ObjectMapper
public class CustomObjectMapper extends ObjectMapper { public CustomObjectMapper() { super(); setVisibility(Visibility.NONE).enable(Visibility.NON_EMPTY); } }
Dieser benutzerdefinierte ObjectMapper deaktiviert die Serialisierung von nicht annotierten Feldern und schließt nur Felder ein, deren Wert ungleich Null ist.
2. Registrieren Sie den benutzerdefinierten ObjectMapper in Spring
Registrieren Sie den benutzerdefinierten ObjectMapper in Ihrer servlet.xml wie folgt:
<bean>
3. Annotationsbasierte Konfiguration aktualisieren
Stellen Sie sicher, dass Ihre @Configuration-Klasse den benutzerdefinierten CountingJacksonHttpMessageConverter registriert:
@Configuration public class JacksonConfiguration { @Bean public MappingJacksonHttpMessageConverter jsonConverter() { MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter(); converter.setObjectMapper(jacksonObjectMapper()); return converter; } }
4. Stellen Sie sicher, dass die Versionsabhängigkeit korrekt ist.
Stellen Sie sicher, dass Sie eine kompatible Version von Jackson verwenden. In diesem Fall wird Jackson 2.x für die Verwendung mit Spring empfohlen.
5. Überprüfen Sie, ob standardmäßige Jackson-Anmerkungen ausgeschlossen werden.
Stellen Sie sicher, dass die standardmäßigen Jackson-Anmerkungen von der Sichtbarkeitserkennung ausgeschlossen sind, indem Sie die setVisibility-Methode in Ihrem benutzerdefinierten ObjectMapper überschreiben.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich den ObjectMapper von Spring so, dass nur mit @JsonProperty annotierte Felder serialisiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!