Android Gson 사용

11629 단어 android
Android Gson

  • 2014 년 05 월 22 일

  • android

  • 현재 의 클 라 이언 트 는 대부분 서버 와 상호작용 을 하 는데 데이터 의 형식 은 제 이 슨 입 니 다. 그래서 안 드 로 이 드 개발 에서 제 이 슨 분석 을 자주 사용 합 니 다. 편리 한 것 은 구 글 이 우리 에 게 좋 은 제 이 슨 분석 라 이브 러 리 - gs on 을 제공 해 주 었 습 니 다. 그러면 오늘 은 gs on 을 나 누 는 여러 가지 방법 을 정리 하 겠 습 니 다.
    gson 의 공식 다운로드 주소: google-gson
    단일 개체
    우선 가장 간단 한 용법 을 살 펴 보 겠 습 니 다. 제 이 슨 의 데이터 형식 이 이렇다 고 가정 합 니 다.
    { "id": 100, "body": "It is my post", "number": 0.13, "created_at": "2014-05-22 19:12:38" } 

    그러면 우 리 는 대응 하 는 클래스 만 정의 해 야 한다.
    public class Foo { public int id; public String body; public float number; public String created_at; } 

    사용 하기 시작 하면 다음 과 같은 몇 줄 의 코드 만 있 으 면 됩 니 다.
    public static final String JSON_DATA = "..."; Foo foo = new Gson().fromJson(JSON, Foo.class); 

    여 기 는 가장 간단 한 용법 입 니 다. createdat 는 String 형식 을 직접 정의 합 니 다. Date 형식 을 원 하 시 면 아래 의 예 가 됩 니 다.
    public class Foo { public int id; public String body; public float number; public Date created_at; } public static final String JSON_DATA = "..."; GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss"); Gson gson = gsonBuilder.create(); Foo foo = gson.fromJson(JSON_DATA, Foo.class); 

    어떤 분 이 createdat 는 자바 스타일 이 아니 라 자바 프로 그래 밍 규범 은 낙타 봉 구조 입 니 다. 그러면 ok, Gson 은 인성 화 된 것 도 주 해 를 제공 하 는 방식 입 니 다. Foo 대상 을 이렇게 바 꾸 면 ok 입 니 다.
    public class Foo { public int id; public String body; public float number; @SerializedName("created_at") public String createdAt; } 

    그리고 용법 이 변 하지 않 으 니 편리 하지 않 습 니까?
    대상 의 끼 워 넣 기
    다음 데 이 터 를 되 돌려 준다 고 가정 합 니 다:
    { "id": 100, "body": "It is my post", "number": 0.13, "created_at": "2014-05-22 19:12:38" "foo2": { "id": 200, "name": "haha" } } 

    그러면 대상 의 정 의 는 이 렇 습 니 다.
    public class Foo { public int id; public String body; public float number; public String created_at; public ChildFoo foo2; public class ChildFoo { public int id; public String name; } } 

    개체 배열
    json 배열 로 돌아 오 면 다음 과 같 습 니 다.
    [{ "id": 100, "body": "It is my post1", "number": 0.13, "created_at": "2014-05-20 19:12:38" }, { "id": 101, "body": "It is my post2", "number": 0.14, "created_at": "2014-05-22 19:12:38" }] 

    이런 해석 에는 두 가지 방법 이 있다.
  • 1. 배열 로 해석
  • public static final String JSON_DATA = "..."; Foo[] foos = new Gson().fromJson(JSON_DATA, Foo[].class); //       List         // List<Foo> foosList = Arrays.asList(foos); 
  • 2. List
  • 로 해석
    public static final String JSON_DATA = "..."; Type listType = new TypeToken<ArrayList<Foo>>(){}.getType(); ArrayList<Foo> foos = new Gson().fromJson(JSON_DATA, listType); 

    총결산
    위 에서 개발 에서 자주 사용 하 는 집중 유형 을 정리 하고 용법 이 간단 하고 편리 하 며 주로 제 이 슨 데이터 가 대응 하 는 데이터 모델 로 추상 화 되 어야 한다.그러나 아 리 는 자신의 오픈 소스 제 이 슨 분석 라 이브 러 리 – FastJSon 을 가지 고 있 습 니 다. 성능 이 더 좋다 고 합 니 다. 하지만 실제 응용 에서 Gson 의 해석 이 상당히 빠 르 고 구 글 공식 적 인 것 을 사용 하 는 것 에 익숙 하기 때문에 FastJson 에 대해 별로 연구 하지 않 았 습 니 다. 나중에 시간 이 있 으 면 사용 해 보 세 요.

    좋은 웹페이지 즐겨찾기