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

Java에서 Gson 라이브러리로 JSON 객체를 Java 객체로 변환하는 방법

GsonGoogle에서 개발한 Java용 JSON 라이브러리입니다. Gson을 활용하면 Java 객체를 JSON으로 직렬화하거나, 반대로 JSON 문자열을 Java 객체로 역직렬화할 수 있습니다. 특히 Gson 클래스의 fromJson() 메서드를 호출하면 JSON 문자열을 손쉽게 Java 객체로 변환할 수 있습니다.

fromJson() 메서드 문법

public <T> fromJson(java.lang.String json, java.lang.Class<T> classOfT) throws JsonSyntaxException

첫 번째 매개변수에는 변환할 JSON 문자열을, 두 번째 매개변수에는 변환 대상이 되는 클래스의 Class 객체를 전달합니다. 만약 JSON 형식이 올바르지 않으면 JsonSyntaxException이 발생하므로 예외 처리에 유의해야 합니다.

예제 코드

import com.google.gson.*;

public class JSONtoJavaObjTest {
   public static void main(String[] args) {
      Gson gson = new Gson();
      Emp emp = gson.fromJson("{'name':'raja','age':25}", Emp.class);
      System.out.println(emp.getName());
      System.out.println(emp.getAge());
   }
}

// Emp 클래스
class Emp {
   String name;
   int age;

   public Emp() {
      super();
   }

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

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public int getAge() {
      return age;
   }

   public void setAge(int age) {
      this.age = age;
   }
}

실행 결과

raja
25

코드 설명

위 예제에서는 먼저 Gson 인스턴스를 생성한 뒤, fromJson() 메서드에 JSON 문자열과 대상 클래스(Emp.class)를 전달하여 변환을 수행합니다. Gson은 내부적으로 리플렉션을 사용해 JSON의 키(name, age)와 일치하는 필드에 값을 자동으로 매핑하며, 이후 getter 메서드를 통해 값을 정상적으로 읽어올 수 있습니다.

Gson 사용 시 참고 사항

- Gson을 프로젝트에서 사용하려면 Maven 또는 Gradle에 gson 의존성을 추가해야 합니다.
- 역직렬화 시 대상 클래스는 기본 생성자(인자 없는 생성자)를 가져야 합니다.
- 필드명은 JSON 키와 일치해야 하며, 다른 경우 @SerializedName 어노테이션으로 매핑할 수 있습니다.