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

Java에서 Jackson 라이브러리로 List를 JSON 배열로 변환하는 방법

ObjectMapper 클래스는 Jackson API에서 가장 핵심적인 클래스입니다. 이 클래스는 JSON을 Java 객체로 변환하는 readValue() 메서드와, Java 객체를 JSON으로 변환하는 writeValue() 메서드를 제공합니다.

List를 JSON 배열로 변환하려면 ObjectMapper 클래스의 writeValueAsString() 메서드를 사용하면 됩니다. 이 메서드는 모든 Java 값을 JSON 문자열 형태로 직렬화(Serialize)할 수 있는 범용 메서드입니다.

메서드 문법

public String writeValueAsString(Object value) throws JsonProcessingException

주요 특징

  • 반환 타입이 String이므로 콘솔 출력, 파일 저장, 네트워크 전송 등에 바로 활용할 수 있습니다.
  • 직렬화 과정에서 오류가 발생할 수 있으므로 JsonProcessingException 예외 처리가 필요합니다.

사전 준비: 의존성 추가

Jackson을 사용하려면 프로젝트에 jackson-databind 의존성을 추가해야 합니다.

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

예제 코드

아래 예제는 문자열 List를 생성한 뒤, ObjectMapper를 통해 JSON 배열 문자열로 변환하는 전체 과정을 보여줍니다.

import java.util.*;
import com.fasterxml.jackson.databind.*;

public class ListToJSONArrayTest {
public static void main(String args[]) {
List<String> list = new ArrayList<>();
list.add("JAVA");
list.add("PYTHON");
list.add("SCALA");
list.add(".NET");
list.add("TESTING");

ObjectMapper objectMapper = new ObjectMapper();
try {
String json = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(list);
System.out.println(json);
} catch(Exception e) {
e.printStackTrace();
}
}
}

코드 설명

  • writerWithDefaultPrettyPrinter(): 들여쓰기와 줄바꿈이 적용된 보기 좋은 형식의 JSON을 생성합니다. 한 줄로 압축된 JSON이 필요하다면 이 호출 없이 writeValueAsString(list)만 사용하면 됩니다.
  • try-catch 블록: 직렬화 중 발생할 수 있는 예외를 안전하게 처리합니다.

실행 결과

[ "JAVA", "PYTHON", "SCALA", ".NET", "TESTING" ]

이처럼 Jackson의 ObjectMapper를 활용하면 복잡한 설정 없이도 Java 컬렉션(List, Set 등)과 POJO 객체를 손쉽게 JSON 배열 또는 JSON 객체로 변환할 수 있습니다.