Developer Cafe

@JsonFilter 본문

Spring/어노테이션

@JsonFilter

개발자 카페 2022. 12. 6. 18:37
728x90
@JsonFilter는 JSON 변환시 사용할 필터를 명시하고 싶을때 사용한다.

jackson-core

jackson-databind

를 gradle 이나 pom.xml에 추가한다.

@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonFilter("userInfo")
public class User {
    private Integer id;

    @Size(min=2, message = "Name은 2글자 이상 입력하세요.")
    private String name;
    @Past
    private Date joinDate;

    private String password;
    private String ssn;
    
 }
@GetMapping("/users")
public MappingJacksonValue retrieveAllUsers() {
    List<User> users = service.findAll();

	// 모든 사용자 정보를 가져올때 id, name, joinDate, password만 겨져오고
    // 싶을때 아래 코드를 통하여 선언한다.
    SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter
            .filterOutAllExcept("id", "name", "joinDate", "password");

    FilterProvider filters = new SimpleFilterProvider().addFilter("UserInfo", filter);

    MappingJacksonValue mapping = new MappingJacksonValue(users);
    mapping.setFilters(filters);

    // MappingJacksonValue 객체를 return한다.
    return mapping;
}

 

728x90
Comments