티스토리 뷰

[Android]JSON데이터 파싱하기(GSON 이용)


개발을 진행 하다보면 각종 서버와 데이터를 주고 받고 받아야 하는 경우가 많이 생깁니다.

요즘에는 서버 API들이 대개 JSON으로 데이터를 주고 받는 편입니다.


단말기에서는 이러한 JSON를 파싱하여 사용 할 필요가 있는데, 이때 가장 많이 이용 되는 라이브러리가 바로 "GSON"입니다.

GSON은 간단한 코드 몇줄로 복잡한 JSON도 간단하게 파싱하여 처리해 주는 강력한 라이브러리 입니다.


이번 포스팅에서 GSON을 이용한 JSON 파싱 방법에 대해서 알아보도록 하겠습니다.


GSON Github : https://github.com/google/gson


1. GSON 준비 하기

   자신에 개발 환경에 맞게 라이브러리 추가 해주면 됩니다.

  

  -안드로이드

1
2
3
dependencies {
    implementation 'com.google.code.gson:gson:2.8.5'
}
cs



  -Maven

1
2
3
4
5
  <dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.5</version>
  </dependency>
cs



2.GSON 사용하기


아래와 같은 샘플 JSON 데이터를 파싱 한다고 가정을 해보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
    "result": "success",
    "code": 0,
    "time": [
        {
            "timeCode": "10",
            "timeDetail": "오전 10시"
        },
        {
            "timeCode": "20",
            "timeDetail": "오후 10시"
        }
    ]
}
cs



JSON 데이터는 살펴보면 2개 JSON Object와 1개의 JSON Array로 구성되어 있습니다.

GSON으로 파싱 하기 위해서는 우선 JSON 형태와 같은 클래스를 작성 해야 합니다.


TimeGson.java


1
2
3
4
5
public class TimeGson {
    String result;
    int code;
    List<TimeItem> time;
}
cs


TimeItem.java


1
2
3
4
public class TimeItem {
    String timeCode;
    String timeDetail;
 }
cs


JSON을 파싱 하기 위해 2개의 클래스를 작성 하였습니다.

JSON에서 Object는 각각의 변수로 지정 되고 JSON Array는 List<>지정 하면 됩니다.

이제 GSON을 통해 위 JSON을 파싱 해 볼려면 아래와 같은 코드를 이용 하면 됩니다.


1
2
3
4
5
 
String json ="파싱할 JSON "
 
Gson gson = new Gson();
TimeGson timeResult = gson.fromJson(json,TimeGson.class);
cs



gson.fromJson을 통해 json과 파싱할 class를 넣어주면 손쉽게 JSON 파싱 데이터를 확인 할 수 있습니다.

댓글