Android Gson 사용
11629 단어 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" }]
이런 해석 에는 두 가지 방법 이 있다.
public static final String JSON_DATA = "..."; Foo[] foos = new Gson().fromJson(JSON_DATA, Foo[].class); // List // List<Foo> foosList = Arrays.asList(foos);
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 에 대해 별로 연구 하지 않 았 습 니 다. 나중에 시간 이 있 으 면 사용 해 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.