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

Java에서 Gson 라이브러리로 JSON 문자열을 파일에 쓰는 방법

Gson 라이브러리란?

GsonJava 객체를 JSON 표현으로 변환할 수 있게 해주는 Google에서 제공하는 라이브러리입니다. 핵심 클래스는 Gson이며, new Gson()을 호출하여 인스턴스를 생성할 수 있습니다. 또한 GsonBuilder 클래스를 사용하면 직렬화/역직렬화 설정을 커스터마이징한 Gson 인스턴스를 만들 수도 있습니다.

Gson 클래스가 제공하는 toJson() 메서드를 사용하면 Java 객체를 JSON 문자열로 변환하여 파일에 바로 기록할 수 있습니다. 아래 예제를 통해 그 방법을 살펴보겠습니다.

예제 코드

import java.io.*;
import com.google.gson.*;
public class JSONToFileTest {
   public static void main(String[] args) throws IOException {
      Gson gson = new Gson();
      FileWriter fileWriter = new FileWriter("Student.json");
      Student student = new Student("Raja", "Ramesh", 30, "Hyderabad");
      gson.toJson(student, fileWriter);
      fileWriter.close();
      System.out.println("JSON string write to a file successfully");
      System.out.println(student);
   }
}
// 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 +
             " ]";
   }
}

코드 설명

위 예제의 동작 흐름은 다음과 같습니다.

1. new Gson()으로 Gson 인스턴스를 생성합니다.
2. FileWriter를 사용해 출력 대상 파일인 Student.json을 엽니다.
3. 이름, 성, 나이, 주소 정보를 담은 Student 객체를 생성합니다.
4. gson.toJson(student, fileWriter)를 호출하면 객체가 JSON 문자열로 직렬화되어 파일에 기록됩니다.
5. 작업이 끝나면 반드시 fileWriter.close()를 호출하여 리소스를 해제해야 합니다.

생성된 Student.json 파일

프로그램 실행 후 생성되는 Student.json 파일의 내용은 아래와 같습니다.

Java에서 Gson 라이브러리로 JSON 문자열을 파일에 쓰는 방법

실행 결과

JSON string write to a file successfully
Student[ firstName = Raja, lastName = Ramesh, age = 30, address = Hyderabad ]

정리

Gson 라이브러리의 toJson() 메서드에 객체와 Writer를 함께 전달하면, 별도의 직렬화 로직 없이도 Java 객체를 손쉽게 JSON 형식의 파일로 저장할 수 있습니다. 참고로 실무 환경에서는 try-with-resources 구문을 활용하면 FileWriter를 자동으로 닫아주므로 더욱 안전하게 리소스를 관리할 수 있습니다.