[Java] Gson을 이용한 Json 다루기


Development note/Java  2019. 6. 19. 09:00

안녕하세요. 명월입니다.


이 글은 Java 환경에서 Json 형식의 데이터를 다루는 방법에 대한 글입니다.


이전에 제가 C#에서 Json을 다루는 글을 쓴 적이 있습니다.

링크 - [C#] Newtonsoft.JSON를 이용한 Json 다루기


Java에서 Gson을 이용해서 Json을 다루는 방법과 C#에서 다루는 방법은 매우 비슷합니다. 그럼 알아보겠습니다.

먼저 Maven에 Gson을 등록하고 라이브러리를 연결합니다.

참조 - https://mvnrepository.com/artifact/com.google.code.gson/gson 

먼저 maven repository에 접속해서 Gson의 최신 Maven 정보를 가져옵니다.

저는 이클립스를 사용하기 때문에 이클립스 pom.xml에 등록합니다.

등록을 하고 먼저 프로젝트에 maven update를 하고 라이브러리를 연결합니다.

그리고 테스트 클래스를 하나 작성하고 사용해 보겠습니다.

class JsonExample {
  // json key
  @SerializedName("Data1")
  private int data1;
  
  // json key
  @SerializedName("Data2")
  private String data2;

  public int getData1() {
    return data1;
  }

  public void setData1(int data1) {
    this.data1 = data1;
  }

  public String getData2() {
    return data2;
  }

  public void setData2(String data2) {
    this.data2 = data2;
  }
}

public static void main(String[] args) {
  // Json 형식의 데이터
  String json = "{ \"Data1\": 1, \"Data2\":\"TEST\" }";
  // Json 형식의 String 값을 JsonExmple 형식으로 변환
  Gson gson = new Gson();
  JsonExample obj = gson.fromJson(json, JsonExample.class);
  
  //결과 값은 1
  System.out.println(obj.data1);
  //결과 값은 TEST
  System.out.println(obj.data2);
  
  obj.setData1(10);
  obj.setData2("Hello world");
  json = gson.toJson(obj);
  
  //결과 값은 {"Data1":10,"Data2":"Hello world"}
  System.out.println(json);
}

물론 C#의 Newtonsoft.json 라이브러리처럼 SerializedName를 쓰지 않고 key명과 변수명을 일치시키면 자동으로 그 변수명으로 입력됩니다.


최근 데이터 형식으로 많이 사용되는 json을 파싱하는 방법에 대한 소개였습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.

Example.zip