언어(Language)/Java

[Java] 자바 JSON 라이브러리 Gson 사용법

잇트루 2023. 5. 9. 01:51
반응형

Gson

Gson은 구글에서 만든 직렬화(Serialization), 역직렬화(Deserialization)를 쉽고 간편하게 해주는 라이브러리다. 자바 객체와 Json 포맷 간의 변환하는 데 사용한다. 주로 Jackson 라이브러리와 많이 비교되기도 한다.

 

 

Gson 라이브러리 의존성 추가

Gradle

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

 

Maven

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

 

 

사용 방법

User 클래스

다음 코드는 name과 age 필드를 가진 User 클래스로, 예제에 사용될 생성자와 getter, toString 메서드가 구현되어 있다.

public class User {
    private String name;
    private int age;

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\\'' +
                ", age=" + age +
                '}';
    }
}

 

Object ↔ Json

public class GsonTest {
    public static void main(String[] args) {
        Gson gson = new Gson();
        User user = new User("kim", 20);

        // 직렬화
        String objectToJson = gson.toJson(user);
        System.out.println(objectToJson);

        System.out.println();

        // 역직렬화
        String jsonString = "{\\"name\\":\\"park\\",\\"age\\":30}";
        User jsonToObject = gson.fromJson(jsonString, User.class);
        System.out.println(jsonToObject);
        System.out.println(jsonToObject.getName());
        System.out.println(jsonToObject.getAge());
    }
}
// 출력
{"name":"kim","age":20}

User{name='park', age=30}
park
30
  • Gson 라이브러리의 toJson 메서드를 통해 객체를 Json 형식의 문자열로 변환할 수 있다.
  • Json 형식의 문자열을 fromJson 메서드를 통해 지정한 타입의 객체로 변환할 수 있다.
반응형