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

Java에서 Gson 라이브러리를 사용해 Map을 JSON으로 변환하는 방법

Gson은 Google에서 제공하는 라이브러리로, Java 객체를 JSON으로 변환(직렬화)하거나 그 반대로 JSON 문자열을 동일한 Java 객체로 변환(역직렬화)하는 데 사용됩니다. Java 객체를 JSON으로 파싱하거나 JSON을 Java 객체로 파싱하려면 먼저 자바 프로그램에 com.google.gson 패키지를 임포트해야 합니다.

Gson 인스턴스 생성 방법

Gson 인스턴스는 다음 두 가지 방식으로 생성할 수 있습니다.

  • new Gson()을 사용하여 직접 생성하는 방법
  • GsonBuilder 인스턴스를 만든 후 create() 메서드를 호출하여 생성하는 방법

GsonBuilder 방식은 직렬화/역직렬화 옵션(예: null 값 처리, 예쁘게 출력 등)을 설정해야 할 때 유용합니다.

예제 코드

아래 예제에서는 SortedMap 객체를 JSON 문자열로 변환합니다.

import java.lang.reflect.*;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.*;

public class ConvertMapToJsonTest {
    public static void main(String args[]) {
        SortedMap<String, String> data = new TreeMap<String, String>();
        data.put("Raja", "Java");
        data.put("Ravi", "SAP");
        data.put("Surya", "Python");
        data.put("Kiran", "Scala");
        data.put("Vamsi", "Selenium");

        Gson gson = new Gson();
        Type gsonType = new TypeToken<SortedMap<String, String>>(){}.getType();
        String gsonString = gson.toJson(data, gsonType);

        System.out.println(gsonString);
    }
}

여기서 TypeToken은 제네릭 타입 정보를 런타임까지 보존하기 위해 사용되며, 복잡한 컬렉션 타입을 정확하게 직렬화할 수 있도록 도와줍니다.

출력 결과

{"Kiran":"Scala","Raja":"Java","Ravi":"SAP","Surya":"Python","Vamsi":"Selenium"}

TreeMap은 키를 알파벳 순서로 정렬하기 때문에 출력 결과에서 키들이 사전순으로 나타나는 것을 확인할 수 있습니다. 이처럼 Gson을 활용하면 Map 데이터를 손쉽게 JSON 형식으로 변환할 수 있으며, REST API 응답 생성이나 설정 파일 작성 등 다양한 상황에서 활용할 수 있습니다.