본문 바로가기

Android

[안드로이드]Gson사용하기

Gson은 자바 객체를 JSON으로 그리고 JSON을 자바 객체로 변환해주는 라이브러리


Gson을 사용하면 한번의 파싱을 통해 JSON에서 곧바로 자바 객체로 또는 그 반대로 간단히 변환할 수 있다


Gson 설정 (build.gradle 파일의 dependencies 블록)

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

 

Gson에서 사용할 클래스 선언

 public class Person {

   

   private String name;

   private String sex;

   private int age;


   @Override

   public String toString() {

     return "name: " + name + "\nsex: " + sex + "\nage: " + age;

   }

 }

 


Gson을 사용하기 위해 위와 같이 클래스를 선언한다


Gson 인스턴스 선언

 Gson gson = new GsonBuilder().create();

 


다음으로 위와 같이 Gson의 인스턴스를 생성한다. 이 Gson 인스턴스를 이용해 JSON과 객체 간 변환을 한다. 인스턴스를 생성할 때 파싱과 관련된 옵션을 설정할 수도 있다. 예를 들어, 날짜를 어떤 포맷으로 변환할지 설정할 수도 있다


JSON에서 객체로 변환

 person = gson.fromJson(txtJSON.getText().toString(), Person.class); 

 


위 코드는 JSON을 자바 객체로 변환하는 예다. 여기서 person은 Person형 변수고, txtJSON이라는 textView 안에 있는 JSON 데이터를 Person 객체로 바꾸는 것이다


객체에서 JSON으로 변환

 txtJSON.setText(gson.toJson(person));

 


위 코드는 반대로 Person 객체를 JSON으로 변환하는 예다. 이 외에도 JSON 배열을 객체 배열로 변환, 객체가 멤버 변수로 있는 객체를 JSON으로 변환 등 다양한 것을 할 수 있다


출처-http://horajjan.blog.me/220496926408