[java] Jackson의 데이터 필터링과 읽기/쓰기 가능한 속성 설정

Jackson은 Java에서 JSON 데이터를 다루기 위한 강력한 라이브러리입니다. Jackson을 사용하면 JSON 데이터의 필요한 부분만 선택적으로 읽거나 쓸 수 있습니다. 이러한 목적으로 Jackson은 데이터 필터링과 읽기/쓰기 가능한 속성 설정을 지원합니다.

데이터 필터링

JSON 데이터의 필요한 부분만 읽거나 쓰는 것은 매우 중요합니다. 특히 대량의 데이터에서 필요한 부분만을 추출하거나, 반대로 중요한 정보만을 전달하는 것이 매우 효율적일 수 있습니다.

Jackson의 @JsonFilter 어노테이션을 사용하여 필터를 정의하고, 필터를 적용할 수 있습니다.

public class MyDto {
    @JsonFilter("myFilter")
    private String name;
    private String email;
    // getters/setters
}

필터를 등록하고 활성화하려면 ObjectMapper 인스턴스를 사용합니다.

ObjectMapper mapper = new ObjectMapper();
FilterProvider filters = new SimpleFilterProvider().addFilter("myFilter", SimpleBeanPropertyFilter.filterOutAllExcept("name"));
String json = mapper.writer(filters).writeValueAsString(myDto);

위 코드는 name 필드만을 포함하여 JSON을 작성합니다.

읽기/쓰기 가능한 속성 설정

때로는 JSON 데이터의 특정 속성은 읽기 전용이거나 쓰기 전용이어야 할 수 있습니다. Jackson은 @JsonProperty 어노테이션을 사용하여 속성의 읽기/쓰기를 제어할 수 있습니다.

public class MyDto {
    @JsonProperty(access = Access.READ_ONLY)
    private String name;
    @JsonProperty(access = Access.WRITE_ONLY)
    private String password;
    // getters/setters
}

이제 name은 읽기 전용이고, password는 쓰기 전용이 됩니다.

Jackson을 사용하여 JSON 데이터의 필터링 및 읽기/쓰기 가능한 속성 설정은 매우 중요하며, 세밀한 제어가 가능하므로 항상 유용합니다.

References