Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Jackson으로 JSON 파일에서 특정 값 검색하기 - ObjectNode get() 메서드 완벽 가이드

JSON 데이터를 다룰 때 특정 필드의 값을 손쉽게 찾아야 하는 경우가 자주 있습니다. Jackson 라이브러리의 com.fasterxml.jackson.databind.node.ObjectNode 클래스를 사용하면 JSON 객체 구조를 그대로 매핑하여 원하는 값을 간편하게 조회할 수 있습니다.

특히 get() 메서드를 활용하면 JSON 파일 내부에서 특정 값을 검색할 수 있으며, 이 메서드는 객체 노드(Object Node)에서 지정된 필드 이름에 해당하는 값을 반환하는 역할을 합니다. 필드 존재 여부를 먼저 확인하는 has() 메서드와 함께 사용하면 더욱 안전하게 값을 조회할 수 있습니다.

문법(Syntax)

public JsonNode get(String fieldName)

위 메서드는 매개변수로 전달된 필드 이름(fieldName)에 해당하는 JsonNode를 반환합니다. 만약 해당 필드가 존재하지 않으면 null을 반환합니다.

예제 코드(Example)

다음 예제는 JSON 문자열을 ObjectNode로 변환한 후, "name" 필드가 존재하는지 확인하고 해당 값을 출력하는 코드입니다.

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class ObjectNodeTest {
    public static void main(String args[]) throws Exception {
        String jsonString = "{\"Id\":101, \"name\":\"Raja Ramesh\", \"address\":\"Madhapur\"}";
        ObjectMapper mapper = new ObjectMapper();
        ObjectNode node = mapper.readValue(jsonString, ObjectNode.class);
        
        if(node.has("name")) {
            System.out.println("NAME: " + node.get("name"));
        }
    }
}

실행 결과(Output)

NAME: "Raja Ramesh"

코드 설명

1. ObjectMapper: Jackson의 핵심 클래스로, JSON 문자열을 Java 객체로 변환(readValue)하거나 그 반대 작업을 수행합니다.
2. readValue(jsonString, ObjectNode.class): JSON 문자열을 ObjectNode 타입으로 파싱하여 트리 구조로 변환합니다.
3. has("name"): "name"이라는 필드가 노드에 존재하는지 검사하여 NullPointerException을 방지합니다.
4. get("name"): "name" 필드의 값을 JsonNode 형태로 가져와 출력합니다.

이처럼 ObjectNode의 get() 메서드를 사용하면 별도의 DTO 클래스를 정의하지 않고도 JSON 구조를 유연하게 탐색하고 필요한 값을 빠르게 추출할 수 있습니다.