ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • @JsonIgnore
    BackEnd/Spring Boot 2022. 4. 25. 07:38
    반응형

    Overview

      해당 글에서는 @JsonIgnore 애노테이션을 사용하여 응답 데이터를 Filtering 하겠습니다.

     

      기존 응답 데이터는 아래와 같습니다.

    // 20220425073134
    // http://localhost:8088/goods/1
    
    {
      "goodsCode": 1,
      "goodsName": "1번 상품입니다."
    }

     

      @JsonIgnore 애노테이션을 사용하면 특정 데이터는 응답 데이터에서 제외시킬 수 있습니다.

     

    package com.spring.springboot.domain;
    
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import javax.validation.constraints.NotEmpty;
    import javax.validation.constraints.Size;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Goods {
    
      @JsonIgnore
      private int goodsCode;
    
      @Size(min = 5, message = "상품명은 최소 5글자 입력해야 합니다.")
      @NotEmpty(message = "상품명은 필수 입력 항목입니다.")
      private String goodsName;
    }

      상품코드에 @JsonIgnore 애노테이션을 붙이면 결과는 아래와 같습니다.

    // 20220425073353
    // http://localhost:8088/goods/1
    
    {
      "goodsName": "1번 상품입니다."
    }

     

      클래스 단위로도 지정이 가능하며 @JsonIgnoreProperties 애노테이션을 사용합니다.

    package com.spring.springboot.domain;
    
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
    import javax.validation.constraints.NotEmpty;
    import javax.validation.constraints.Size;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @JsonIgnoreProperties(value={"goodsCode"})
    public class Goods {
    
      private int goodsCode;
    
      @Size(min = 5, message = "상품명은 최소 5글자 입력해야 합니다.")
      @NotEmpty(message = "상품명은 필수 입력 항목입니다.")
      private String goodsName;
    }
    반응형

    'BackEnd > Spring Boot' 카테고리의 다른 글

    HATEOAS  (0) 2022.05.20
    버전 관리(Versioning)  (0) 2022.04.26
    XML format  (0) 2022.04.25
    다국어 처리(Internationalization)  (0) 2022.04.08
    Validation  (0) 2022.04.06

    댓글

Designed by Tistory.