본문 바로가기
IT/Java

JAVA GSON 소개

by bamcong 2025. 3. 1.

GSON은 Java 객체를 JSON으로 변환하거나, JSON 데이터를 Java 객체로 변환하는 데 사용됩니다. 예를 들어, 우리가 웹 API에서 JSON 형식으로 받은 데이터를 자바 객체에 쉽게 매핑할 수 있습니다. 이 과정을 통해 데이터 전송을 훨씬 효율적으로 처리할 수 있습니다.

GSON 라이브러리 추가하기

먼저, GSON 라이브러리를 프로젝트에 추가해야 합니다. Maven 또는 Gradle을 사용할 수 있습니다. Maven을 사용하는 경우, 아래와 같이 pom.xml에 추가합니다.

com.google.code.gson
gson
2.8.6

Gradle을 사용하는 경우 build.gradle에 아래와 같이 추가합니다.

implementation 'com.google.code.gson:gson:2.8.6'

JSON과 Java 객체 변환

1. Java 객체를 JSON으로 변환하기

우선, GSON을 사용하여 Java 객체를 JSON으로 변환하는 방법을 알아보겠습니다. 아래는 간단한 예제입니다.

import com.google.gson.Gson;

class Person {
    private String name;
    private int age;

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

public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 30);
        Gson gson = new Gson();
        
        String json = gson.toJson(person);
        System.out.println(json); // {"name":"John","age":30}
    }
}

2. JSON을 Java 객체로 변환하기

이제 JSON 문자열을 Java 객체로 변환하는 방법입니다. 아래 예제를 참고하세요.

import com.google.gson.Gson;

class Person {
    private String name;
    private int age;
    
    // getters and setters
}

public class Main {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30}";
        Gson gson = new Gson();
        
        Person person = gson.fromJson(json, Person.class);
        System.out.println(person.getName()); // John
        System.out.println(person.getAge()); // 30
    }
}

GSON의 유용한 기능

GSON은 간단한 변환 외에도 여러 가지 유용한 기능을 제공합니다.

  • Java 컬렉션 지원 : GSON은 List, Map 등의 Java 컬렉션도 직렬화 및 역직렬화할 수 있습니다.
  • 커스터마이징 : GSON은 사용자 정의 직렬화 및 역직렬화 기능을 제공합니다.
  • JSON 예외 처리 : JSON 파싱 중에 발생할 수 있는 예외를 처리할 수 있는 방법이 있습니다.

JSON 컬렉션 처리 예시

아래는 List를 JSON으로 변환하는 예제입니다.

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

class Person {
    private String name;
    private int age;

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

public class Main {
    public static void main(String[] args) {
        List people = new ArrayList<>();
        people.add(new Person("Alice", 28));
        people.add(new Person("Bob", 34));

        Gson gson = new Gson();
        String json = gson.toJson(people);
        System.out.println(json); // [{"name":"Alice","age":28},{"name":"Bob","age":34}]

        Type listType = new TypeToken<arraylist>() {}.getType();
        List personList = gson.fromJson(json, listType);
        System.out.println(personList.get(0).getName()); // Alice
    }
}

결론

GSON은 JSON과 Java 간의 변환을 편리하게 해주는 강력한 도구입니다. 특히 API와의 연동 시 JSON 데이터를 다룰 때 유용하게 사용할 수 있습니다. GSON을 활용하면 Java에서 JSON을 쉽게 처리하고, 복잡한 데이터 구조도 간편하게 구성할 수 있습니다.

참고 자료

GSON에 대한 자세한 내용은 [GSON GitHub 리포지토리](https://github.com/google/gson)를 참조하시기 바랍니다.

 

반응형