필드만 사용하도록 Jackson 구성: 전역 접근 방식
Jackson의 기본 동작에는 직렬화를 위해 속성(getter/setter)과 필드를 모두 사용하는 것이 포함됩니다. 그리고 역직렬화. 그러나 필드를 직렬화 구성의 소스로만 사용하고 싶을 수도 있습니다.
개별 클래스 주석
이를 달성하기 위해 각 개별 클래스에 다음 주석을 적용할 수 있습니다. :
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
단, 이 방법을 사용하려면 모든 클래스에 반복적인 주석을 달아야 합니다. 번거롭습니다.
전역 구성
이 동작을 전역적으로 구성하려면 개별 ObjectMapper를 다음과 같이 수정하십시오.
ObjectMapper mapper = new ObjectMapper(); mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker() .withFieldVisibility(JsonAutoDetect.Visibility.ANY) .withGetterVisibility(JsonAutoDetect.Visibility.NONE) .withSetterVisibility(JsonAutoDetect.Visibility.NONE) .withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
래퍼를 통한 전역 액세스 클래스
구성된 매퍼에 전역적으로 액세스하려면 다음을 고려하세요. 래퍼 클래스 구현:
매퍼를 클래스/함수로 래핑하여 필요에 따라 전역적으로 노출합니다.
public class JsonMapperWrapper { private static final ObjectMapper mapper = <configure ObjectMapper as above>; public static ObjectMapper getMapper() { return mapper; } }
이 접근 방식을 사용하면 JsonMapperWrapper.getMapper( ).
위 내용은 전역적으로 직렬화 및 역직렬화에 필드만 사용하도록 Jackson을 구성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!