android에서 Gson 라이브러리 사용하기

Json 형식은 데이터 교환방식중 가장 많이 사용 하지 않나 생각 합니다.

android에서는 가장 기본적으로 JsonObject라는 클래스를 이용하여 편리하게 파싱을 할수 있습니다.
하지만 이방법도 더 편리한 방법으로 제공 하는 것이 바로 Gson입니다.

Gson 라이브러리는 파싱할 클래스를 선언하고 간단한 함수 호출을 통하여
객체에 값들이 할당됩니다.

compile 'com.google.code.gson:gson:x.x'

build.gradle의 dependencies에 gson라이브러리를 추가 합니다.


class SampleDTO
    {
        int idx;
        String text;

        public SampleDTO(int idx, String text)
        {
            this.idx = idx;
            this.text = text;
        }
    }
파싱할 클래스형태를 만들어 줍니다.

Gson gson = new Gson();

SampleDTO dto = new SampleDTO(1, "sample");
String sJsonText1 = gson.toJson(dto);
String sJsonText2 = gson.toJson(dto, SampleDTO.class);

Log.d("gson", "sJsonText1: " + sJsonText1 + "\nsJsonText2: " + sJsonText2);
생성한 객체를 통해 Json텍스트로 만들어 주는 형태입니다.
Gson 객체와 Json텍스트로 만들어 줄 객체를 생성합니다.
데이터 객체를 텍스트로 만들어 주기 위한 함수 toJson을 사용합니다.
데이터 객체와 데이터클래스(선택)으로 지정해 줍니다.

D/gson: sJsonText1: {"idx":1,"text":"sample"}
             sJsonText2: {"idx":1,"text":"sample"}
로그로 출력된 결과 입니다.
데이터 클래스를 지정 한것과 안한 것은 차이가 없다는 것을 알수 있습니다.

SampleDTO parse = gson.fromJson(sJsonText1, SampleDTO.class);

Log.d("gson", "idx: " + parse.idx + "  text: " + parse.text);
Json텍스트를 객체로 파싱 하는 소스입니다.
텍스트와, 클래스타입의 지정으로 간단하게 파싱 되는 것을 알수 있습니다.

D/gson: idx: 1  text: sample
결과 로그 입니다.

장점으로는 Json을 하나하나 찾아가면서 파싱하고 객체에 값을 할당하는 작업을 안하는 것이 가장 크다고 생각합니다.





댓글

주간 인기글

[정보] 인스타그램은 당신의 소리를 '듣고' 있을 수도 있습니다

남산 케이블카 이야기

[Angular] 모델, 값이 바뀌었는데 화면 template 이 업데이트 되지 않을 때 조치 팁

안드로이드에서 당겨서 새로고침(SwipeRefreshLayout) 쉽게 구현하기

Java8 Stream 가이드