>  기사  >  Java  >  Spring MVC의 JSON 직렬화에서 필드를 동적으로 제외하는 방법은 무엇입니까?

Spring MVC의 JSON 직렬화에서 필드를 동적으로 제외하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 04:37:02885검색

How to Dynamically Exclude Fields from JSON Serialization in Spring MVC?

Spring MVC의 JSON 직렬화에서 필드를 동적으로 제외

민감하거나 관련 없는 데이터를 JSON 응답에서 제외해야 하는 시나리오에서 Spring MVC는 무시할 수 있는 유연한 메커니즘을 제공합니다.

@JsonIgnoreProperties 주석

@JsonIgnoreProperties 주석을 사용하면 JSON으로 직렬화되지 않도록 특정 필드를 제외할 수 있습니다. POJO에 적용하면 필드 이름 목록을 인수로 사용하고 JSON 표현에서 해당 필드를 생략합니다. 예를 들어, 질문에 설명된 사용자 개체에서 CreateBy 및 updateBy 필드를 제외하려는 경우:

@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true, value = {"createdBy", "updatedBy"})
public class User {
    // Class variables and methods
}

이 주석을 사용하면 JSON 응답에는 value 매개 변수에 명시적으로 지정된 필드만 포함됩니다. 즉, userId, userName 및 emailId입니다.

@JsonIgnore Annotation

또 다른 옵션은 개별 필드에 @JsonIgnore 주석을 사용하는 것입니다. 이 주석은 직렬화 및 역직렬화 중에 필드가 무시되어야 함을 나타냅니다. 제외된 필드 목록이 동적이고 런타임 조건에 따라 변경될 수 있는 경우 유용합니다. 예를 들어, cryptoPwd 필드를 동적으로 제외하려는 경우:

@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
    // Other class variables and methods
    
    @JsonIgnore
    private String encryptedPwd;
}

cryptedPwd 필드에 @JsonIgnore를 설정하면 해당 필드가 get 메서드에 포함되어 있어도 JSON 직렬화에서 제외됩니다. POJO.

Github 예제

이러한 기술의 실제 구현은 다음 GitHub 저장소에서 찾을 수 있습니다: https://github.com/spring-projects/spring-framework/tree/main/ spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcAnnotationConfigTests.

위 내용은 Spring MVC의 JSON 직렬화에서 필드를 동적으로 제외하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.