SeouliteLab

[Java/자바] Jackson 라이브러리를 활용한 Java에서의 JSON 처리 방법 본문

프로그래밍

[Java/자바] Jackson 라이브러리를 활용한 Java에서의 JSON 처리 방법

Seoulite Lab 2024. 3. 15. 09:09

Java에서 JSON 데이터를 다루는 작업은 매우 일반적입니다. 이를 위해 Jackson 라이브러리는 강력한 도구로 자리매김하고 있습니다. 이번에는 Jackson 라이브러리를 사용하여 Java에서 JSON 데이터를 읽고 쓰는 방법에 대해 알아보겠습니다.

1. Jackson 라이브러리 추가

먼저 프로젝트의 의존성에 Jackson 라이브러리를 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 의존성을 추가합니다.

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

2. 객체를 JSON으로 변환하기

Java 객체를 JSON 형식의 문자열로 변환하려면 ObjectMapper 클래스를 사용합니다. 예를 들어, 다음과 같이 객체를 JSON으로 변환할 수 있습니다.

// Jackson 라이브러리 임포트
import com.fasterxml.jackson.databind.ObjectMapper;

// 객체 생성
public class Main {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        Object obj = new Object(); // 변환할 객체

        // 객체를 JSON 문자열로 변환
        String json = mapper.writeValueAsString(obj);
        System.out.println(json);  // 출력 결과: {"key":"value"}
    }
}

3. JSON을 객체로 변환하기

JSON 형식의 문자열을 Java 객체로 변환하려면 readValue 메서드를 사용합니다. 다음은 JSON 문자열을 객체로 변환하는 예제입니다.

// Jackson 라이브러리 임포트
import com.fasterxml.jackson.databind.ObjectMapper;

// 객체 생성
public class Main {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        String json = "{\"key\":\"value\"}"; // JSON 문자열

        // JSON 문자열을 객체로 변환
        Object obj = mapper.readValue(json, Object.class);
        System.out.println(obj);  // 출력 결과: {key=value}
    }
}

4. JSON 파일 읽고 쓰기

Jackson 라이브러리를 사용하여 JSON 파일을 읽고 쓸 수도 있습니다. 다음은 JSON 파일을 읽어 객체로 변환하는 예제입니다.

// Jackson 라이브러리 임포트
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;

// 객체 생성
public class Main {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        File file = new File("data.json"); // JSON 파일 경로

        // JSON 파일을 객체로 변환
        Object obj = mapper.readValue(file, Object.class);
        System.out.println(obj);  // 출력 결과: {key=value}
    }
}

5. JSON 객체 생성 및 수정

Jackson 라이브러리를 사용하여 JSON 객체를 생성하고 수정할 수도 있습니다. 다음은 JSON 객체를 생성하고 특정 필드의 값을 수정하는 예제입니다.

// Jackson 라이브러리 임포트
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;

// 객체 생성
public class Main {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();

        // JSON 객체 생성
        ObjectNode node = mapper.createObjectNode();
        node.put("key", "value");

        // JSON 객체 수정
        node.put("key", "updated_value");
        System.out.println(node);  // 출력 결과: {"key":"updated_value"}
    }
}

6. JSON Pretty 출력

Jackson 라이브러리를 사용하여 JSON을 예쁘게 출력할 수도 있습니다. 다음은 예쁘게 포맷된 JSON을 출력하는 예제입니다.

// Jackson 라이브러리 임포트
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;

// 객체 생성
public class Main {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);

        // JSON 예쁘게 출력
        Object obj = new Object(); // 출력할 객체
        String prettyJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
        System.out.println(prettyJson);
    }
}