[java] 자바에서 JSON 데이터의 특정 속성 값 추출하여 다른 객체에 저장하기

JSON 데이터는 대부분의 웹 API에서 사용되는 형식으로, 자바에서 다룰 때 특정 속성 값을 추출하여 다른 객체에 저장해야 할 때가 있습니다. 이번 포스트에서는 자바에서 JSON 데이터의 특정 속성 값을 추출하는 방법과 다른 객체에 저장하는 방법을 알아보겠습니다.

1. 라이브러리 추가

자바에서 JSON 데이터를 다루기 위해서는 JSON 파싱 라이브러리를 추가해야 합니다. 여기서는 Jackson 라이브러리를 사용하도록 하겠습니다.

Maven을 사용하는 경우, pom.xml 파일에 아래 의존성을 추가해주세요.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.5</version>
</dependency>

2. JSON 데이터 파싱하기

JSON 데이터를 파싱하여 객체에 저장하기 위해서는 먼저 JSON 데이터를 문자열로 읽어와야 합니다. 자바에서는 File 또는 URL에서 JSON 데이터를 읽어오는 방법이 있지만, 여기서는 문자열을 직접 사용하도록 하겠습니다.

String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";

위와 같이 JSON 데이터를 문자열로 정의하였습니다.

3. JSON 속성 값 추출하기

이제 JSON 데이터에서 특정 속성 값을 추출해보겠습니다. 예를 들어, 위의 JSON 데이터에서 “name” 속성 값을 추출하여 다른 변수에 저장하고 싶다면 아래와 같이 할 수 있습니다.

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

// JSON 데이터를 파싱하는 ObjectMapper 객체 생성
ObjectMapper objectMapper = new ObjectMapper();

try {
    // JSON 데이터 파싱
    JsonNode jsonNode = objectMapper.readTree(jsonString);

    // 특정 속성 값 추출
    String name = jsonNode.get("name").asText();

    // 추출한 값 출력
    System.out.println("name: " + name);
} catch (Exception e) {
    e.printStackTrace();
}

위 코드에서는 ObjectMapper 객체를 사용하여 JSON 데이터를 파싱하고, get() 메서드를 사용하여 “name” 속성 값을 추출하였습니다. asText() 메서드를 호출하여 추출한 값을 문자열로 변환하여 사용할 수 있습니다.

4. 다른 객체에 값 저장하기

특정 속성 값을 추출하여 다른 객체에 저장하기 위해서는 해당 속성의 타입을 알고 있어야 합니다. 예를 들어, 위의 예제에서 “name” 속성은 문자열로 추출됩니다. 따라서 문자열 변수에 추출한 값을 저장할 수 있습니다.

String name = jsonNode.get("name").asText();

// 다른 객체에 추출한 값 저장
AnotherObject anotherObject = new AnotherObject();
anotherObject.setName(name);

위 코드에서는 AnotherObject라는 클래스의 setName() 메서드를 사용하여 추출한 값을 저장하였습니다. 이렇게 저장된 값은 다른 객체에서 사용할 수 있게 됩니다.

5. 참고 자료

이번 포스트에서는 자바에서 JSON 데이터의 특정 속성 값을 추출하여 다른 객체에 저장하는 방법을 알아보았습니다. JSON 데이터를 다루는 작업을 할 때, 이러한 방법을 활용하여 효율적으로 데이터를 관리할 수 있습니다.