So konfigurieren Sie ObjectMapper in Spring
Problem:
Sie möchten ObjectMapper in konfigurieren Spring serialisiert nur die Elemente, die mit @JsonProperty annotiert sind. Trotz der Befolgung der empfohlenen Anweisungen enthält die NumbersOfNewEvents-Klasse jedoch bei der Serialisierung immer noch alle Attribute.
Erklärung:
Im benutzerdefinierten CompanyObjectMapper haben Sie die Sichtbarkeitsprüfung festgelegt um alle Felder und Getter/Setter standardmäßig auszublenden. Dies verhindert, dass ObjectMapper auf die Felder newAccepts und openRequests zugreift und diese serialisiert.
Lösung:
Um das gewünschte Ergebnis zu erzielen, können Sie die Sichtbarkeit gezielter konfigurieren Checker. Hier ist ein Beispiel:
public class CompanyObjectMapper extends ObjectMapper { public CompanyObjectMapper() { super(); SerializationConfig config = getSerializationConfig(); config.withView(Some.class) // Specify which view to use .withVisibility(JsonAutoDetect.Visibility.NONE) .withVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); } }
Diese Konfiguration ermöglicht die Serialisierung der Eigenschaften mit der Annotation @JsonProperty, während andere Felder ausgeblendet bleiben.
Spring Boot-Konfiguration:
Wenn Sie Spring Boot und Jackson 2.4.6 oder höher verwenden, können Sie Folgendes verwenden Konfiguration:
@Configuration public class JacksonConfiguration { @Bean public ObjectMapper objectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); // Enable default typing for polymorphic types mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); // Allow serialization of fields mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true); // Enable default view inclusion return mapper; } }
Diese Konfiguration ermöglicht die Standardtypisierung für polymorphe Typen, ermöglicht die Serialisierung aller Felder und ermöglicht die Standardeinbindung von Ansichten.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich den ObjectMapper von Spring so, dass nur @JsonProperty-annotierte Elemente serialisiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!