Spring에서 ObjectMapper를 구성하는 방법
문제:
ObjectMapper를 구성하려고 합니다. @JsonProperty로 주석이 달린 요소만 직렬화하는 Spring입니다. 그러나 권장 지침을 따랐음에도 불구하고 NumbersOfNewEvents 클래스는 직렬화될 때 여전히 모든 속성을 포함합니다.
설명:
사용자 정의 CompanyObjectMapper에서 가시성 검사기를 설정했습니다. 기본적으로 모든 필드와 getter/setter를 숨깁니다. 이렇게 하면 ObjectMapper가 newAccepts 및 openRequests 필드에 액세스하고 직렬화하는 것을 방지할 수 있습니다.
해결책:
원하는 결과를 얻으려면 보다 타겟화된 접근 방식을 사용하여 가시성을 구성할 수 있습니다. 체커. 예는 다음과 같습니다.
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); } }
이 구성을 사용하면 @JsonProperty 주석이 있는 속성을 직렬화하는 동시에 다른 필드는 숨길 수 있습니다.
Spring Boot 구성:
Spring Boot 및 Jackson 2.4.6 이상을 사용하는 경우 다음을 사용할 수 있습니다. 구성:
@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; } }
이 구성은 다형성 유형에 대한 기본 입력을 활성화하고 모든 필드의 직렬화를 허용하며 기본 뷰 포함을 활성화합니다.
위 내용은 @JsonProperty 주석이 달린 요소만 직렬화하도록 Spring의 ObjectMapper를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!