[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 데이터의 필터링 및 읽기/쓰기 가능한 속성 설정은 매우 중요하며, 세밀한 제어가 가능하므로 항상 유용합니다.