ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Gson을 사용하여 JSON 파일 읽기 및 쓰기
    카테고리 없음 2025. 2. 17. 16:10
    반응형

    Gson을 사용하여 JSON 파일 읽기 및 쓰기

    Gson은 Google에서 제공하는 Java 라이브러리로, JSON 데이터를 Java 객체로 변환하거나 Java 객체를 JSON 데이터로 변환하는 데 사용됩니다. 이 글에서는 Gson을 사용하여 JSON 파일에 데이터를 쓰고, 해당 파일을 읽어 Java 객체로 변환하는 방법을 단계별로 설명합니다.


    1. Gson 라이브러리 다운로드

    Gson을 사용하려면 프로젝트에 Gson 라이브러리를 추가해야 합니다. Maven 프로젝트의 경우, pom.xml에 다음 의존성을 추가하세요:

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

    2. 테스트용 Java 객체 생성

    JSON 데이터를 다루기 위해 간단한 Java 클래스를 생성합니다. 예제에서는 Person 클래스를 사용합니다.

    Person.java

    package com.example.json.model;
    
    public class Person {
        private String name;
        private int age;
    
        // 기본 생성자
        public Person() {}
    
        // 매개변수 생성자
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        // Getter, Setter, toString() 메서드
        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;
        }
    
        @Override
        public String toString() {
            return "Person{name='" + name + "', age=" + age + "}";
        }
    }

    3. JSON 파일에 Java 객체 쓰기

    Gson의 toJson() 메서드를 사용하여 Java 객체를 JSON 데이터로 변환하고 이를 파일에 저장할 수 있습니다.

    GsonWriteObjectToJsonExample.java

    package com.example.json.gson;
    
    import com.google.gson.Gson;
    import com.example.json.model.Person;
    
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Writer;
    
    public class GsonWriteObjectToJsonExample {
        public static void main(String[] args) {
            // Java 객체 생성
            Person person = new Person("john_doe", 42);
    
            // Gson 인스턴스 생성
            Gson gson = new Gson();
    
            // JSON 데이터를 저장할 파일 지정
            try (Writer writer = new FileWriter("person.json")) {
                // Java 객체를 JSON 데이터로 변환하고 파일에 쓰기
                gson.toJson(person, writer);
                System.out.println("JSON 파일 작성 완료: person.json");
            } catch (IOException e) {
                throw new RuntimeException("파일 쓰기 중 오류 발생", e);
            }
        }
    }

    출력 결과 (person.json):

    {"name":"john_doe","age":42}

    4. JSON 파일에서 Java 객체 읽기

    Gson의 fromJson() 메서드를 사용하여 JSON 파일의 데이터를 읽어 Java 객체로 변환할 수 있습니다.

    GsonReadJsonToObjectExample.java

    package com.example.json.gson;
    
    import com.google.gson.Gson;
    import com.example.json.model.Person;
    
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader;
    
    public class GsonReadJsonToObjectExample {
        public static void main(String[] args) {
            // Gson 인스턴스 생성
            Gson gson = new Gson();
    
            // JSON 파일 읽기
            try (Reader reader = new FileReader("person.json")) {
                // JSON 데이터를 Java 객체로 변환
                Person person = gson.fromJson(reader, Person.class);
                System.out.println("JSON 파일에서 읽은 데이터: " + person);
            } catch (IOException e) {
                throw new RuntimeException("파일 읽기 중 오류 발생", e);
            }
        }
    }

    출력 결과:

    JSON 파일에서 읽은 데이터: Person{name='john_doe', age=42}

    5. 전체 소스 코드 다운로드

    위 코드의 전체 소스는 GitHub에서 다운로드할 수 있습니다:

    $ git clone https://github.com/mkyong/java-json
    $ cd gson

    6. 요약 및 참고 사항

    • 직렬화(Serialization): toJson() 메서드를 사용하여 Java 객체를 JSON으로 변환.
    • 역직렬화(Deserialization): fromJson() 메서드를 사용하여 JSON 데이터를 Java 객체로 변환.
    • 파일 처리: FileWriterFileReader를 활용하여 JSON 데이터를 파일에 저장하거나 읽어들임.

    Gson은 간단한 API와 높은 성능으로 인해 널리 사용되는 라이브러리입니다. 특히 JSON 데이터를 다뤄야 하는 프로젝트에서 효율적으로 활용할 수 있습니다.


    위 내용을 바탕으로 Gson을 활용한 JSON 데이터 처리 방법을 익히고, 다양한 응용 프로그램에서 활용해 보세요!

    반응형
Designed by Tistory.