[java] Java 객체를 JSON으로 변환하는 방법은?

1. Jackson 라이브러리 사용하기

Jackson은 Java에서 JSON 데이터를 다루기 위한 강력한 라이브러리입니다. Jackson을 사용하여 Java 객체를 JSON으로 변환하려면 다음과 같이 진행합니다.

Gradle:

dependencies {
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.2'
}

Maven:

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

다음은 Jackson을 사용하여 Java 객체를 JSON으로 변환하는 코드 예시입니다.

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {

    public static void main(String[] args) {
        // Java 객체 정의
        Person person = new Person("John Doe", 30, "john@example.com");

        // ObjectMapper를 사용하여 객체를 JSON으로 변환
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            String json = objectMapper.writeValueAsString(person);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

class Person {
    private String name;
    private int age;
    private String email;

    // 생성자 및 getter/setter 생략

    // Jackson은 기본 생성자를 사용하기 때문에 반드시 기본 생성자가 존재해야 합니다.
    public Person() {}

    public Person(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }
}

위 코드에서 ObjectMapper 클래스는 객체를 JSON 문자열로 변환하는데 사용됩니다. writeValueAsString() 메서드는 Java 객체를 JSON 문자열로 변환하는 역할을 합니다. 출력 결과는 다음과 같을 것입니다.

{"name":"John Doe","age":30,"email":"john@example.com"}

2. Gson 라이브러리 사용하기

Gson은 Google에서 제공하는 Java용 JSON 라이브러리로, Jackson과 유사한 기능을 제공합니다. Gson을 사용하여 Java 객체를 JSON으로 변환하려면 다음과 같이 진행합니다.

Gradle:

dependencies {
    implementation 'com.google.code.gson:gson:2.8.8'
}

Maven:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.8</version>
</dependency>

다음은 Gson을 사용하여 Java 객체를 JSON으로 변환하는 코드 예시입니다.

import com.google.gson.Gson;

public class JsonExample {

    public static void main(String[] args) {
        // Java 객체 정의
        Person person = new Person("John Doe", 30, "john@example.com");

        // Gson을 사용하여 객체를 JSON으로 변환
        Gson gson = new Gson();
        String json = gson.toJson(person);

        System.out.println(json);
    }
}

class Person {
    private String name;
    private int age;
    private String email;

    // 생성자 및 getter/setter 생략

    public Person(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }
}

위 코드에서 Gson 클래스는 객체를 JSON 문자열로 변환하기 위한 메서드인 toJson()을 제공합니다. 출력 결과는 다음과 같을 것입니다.

{"name":"John Doe","age":30,"email":"john@example.com"}

Java에서 객체를 JSON으로 변환하는 여러 가지 방법을 살펴보았습니다. 이 중에서도 Jackson과 Gson은 가장 널리 사용되는 라이브러리입니다. 기타 JSON 라이브러리를 사용할 수도 있으니, 프로젝트의 요구 사항과 개발 환경에 맞게 선택하시면 됩니다.

참고 자료