JSON(JavaScript Object Notation)은 사람이 읽기 쉬운 데이터 교환을 위해 설계된 경량 텍스트 기반 개방형 표준입니다. JSON에서 사용하는 문법 규칙은 C, C++, Java, Python, Perl 등 다양한 프로그래밍 언어에 익숙한 개발자라면 누구나 쉽게 이해할 수 있습니다.
Java에서 JSON 객체를 다루는 라이브러리는 여러 가지가 있으며, 그중 Google Gson은 Java 객체를 JSON으로 직렬화하거나 그 반대 작업을 수행할 수 있는 간단하고 강력한 오픈소스 라이브러리입니다. Google에서 개발하여 널리 사용되고 있습니다.
Java 객체를 JSON으로 변환하기
Gson 라이브러리는 라이브러리 이름과 동일한 Gson 클래스를 핵심 클래스로 제공합니다.
이 클래스에는 toJson() 메서드가 포함되어 있으며, 여러 오버로드된 형태 중 하나는 Java 객체를 인자로 받아 이를 JSON으로 변환한 결과를 반환합니다.
따라서 GSON 라이브러리를 사용해 Java 객체를 JSON 문자열로 변환하려면 아래 단계를 따르면 됩니다.
1단계: Maven 의존성 추가
pom.xml 파일에 다음 의존성을 추가합니다.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>2단계: POJO 클래스 생성
- private 변수와 setter/getter 메서드를 갖춘 JavaBean(POJO) 클래스를 생성합니다.
- POJO 클래스에 접근할 수 있는 또 다른 클래스를 만듭니다.
3단계: 객체 생성 및 값 설정
- POJO 클래스의 인스턴스를 생성하고, setter 메서드를 통해 필요한 값을 설정합니다.
4단계: Gson 객체로 변환 및 출력
- Gson 클래스를 인스턴스화합니다.
- 앞서 생성한 POJO 객체를 인자로 전달하며 toJson() 메서드를 호출합니다.
- 반환된 JSON 문자열을 받아 출력합니다.
예제 코드
import com.google.gson.Gson;
class Student {
private int id;
private String name;
private int age;
private long phone;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
public long getPhone() {
return phone;
}
public void setPhone(long phone) {
this.phone = phone;
}
}
public class ObjectTOString {
public static void main(String args[]) {
Student std = new Student();
std.setId(001);
std.setName("Krishna");
std.setAge(30);
std.setPhone(9848022338L);
// Gson 객체 생성
Gson gSon = new Gson();
String jsonString = gSon.toJson(std);
System.out.println(jsonString);
}
}실행 결과
{"id":1,"name":"Krishna","age":30,"phone":9848022338}위 예제에서 볼 수 있듯이, Gson 객체의 toJson() 메서드에 Student 객체를 전달하기만 하면 해당 객체의 필드 값들이 자동으로 JSON 형식의 문자열로 변환됩니다. 이처럼 Gson 라이브러리를 활용하면 별도의 복잡한 처리 없이도 Java 객체와 JSON 간의 변환을 손쉽게 구현할 수 있습니다.