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

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

Gson이란?

Gson은 Google이 개발한 Java용 JSON 라이브러리입니다. Gson을 사용하면 Java 객체를 JSON 형식으로 직렬화하거나, 반대로 JSON을 Java 객체로 역직렬화할 수 있습니다. 특히 빈(Bean) 또는 일반 Java 객체를 JSON 문자열로 변환할 때 Gson 클래스의 toJson() 메서드를 호출하면 됩니다.

toJson() 메서드 문법

public java.lang.String toJson(java.lang.Object src)

이 메서드는 매개변수로 전달된 객체(src)를 대응되는 JSON 표현 문자열로 변환하여 반환합니다. 내부적으로 리플렉션을 사용하기 때문에 별도의 설정 없이도 객체의 필드 값을 자동으로 직렬화합니다.

Maven 의존성 추가

Gson을 프로젝트에서 사용하려면 먼저 다음과 같이 의존성을 추가해야 합니다.

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

예제 코드

아래 예제에서는 Student 객체를 생성한 뒤, Gson의 toJson() 메서드를 호출하여 JSON 문자열로 변환하고 콘솔에 출력합니다.

import com.google.gson.Gson;

public class ConvertJavaObjectToJSONTest {
public static void main(String[] args) {
Gson gson = new Gson();
Student student = new Student("Raja", "Ramesh", 30, "Hyderabad");
System.out.println(gson.toJson(student)); // Java 객체를 JSON 객체로 변환
}
}

// Student 클래스
class Student {
private String firstName;
private String lastName;
private int age;
private String address;

public Student(String firstName, String lastName, int age, String address) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String toString() {
return "Student[ " +
" firstName = " + firstName +
", lastName = " + lastName +
", age = " + age +
", address = " + address +
" ]";
}
}

실행 결과

{"firstName":"Raja","lastName":"Ramesh","age":30,"address":"Hyderabad"}

참고 사항

  • Gson은 기본적으로 getter 메서드가 없어도 private 필드를 직접 읽어 직렬화합니다.
  • 값이 null인 필드는 기본적으로 JSON 출력에서 제외됩니다. 포함하려면 GsonBuilder의 serializeNulls() 옵션을 사용하세요.
  • JSON을 다시 Java 객체로 변환하려면 fromJson() 메서드를 사용하면 됩니다.