天天看點

Android應用開發之(Gson的使用)

把gson作為我們的json解析庫,如何應用到我們的程式中呢?之需要引入gson的jar包即可:

下載下傳位址:http://code.google.com/p/google-gson/

code docs:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

使用方法:

一、對象-->json

   假如我們有一個類person:

public class person {     public long id;     public string name;     public boolean ismale;     public string avatar; }

   通過一個gson執行個體:

gson gson = new gson();

   我們可以直接将一個person執行個體轉換成json字元串:

person person = new person(); person.id= 111; person.name= "張三"; person.ismale= true; person.avatar= "http://aaaaaaaaa"; string jsonstr = gson.tojson(person); log.v("=============", jsonstr);

   即使是list和map也可以(以list為例):

arraylist<person> list = new arraylist<person>(); person person = new person(); person.name= "張三"; person.avatar= "http://aaaaaaaaa"; list.add(person); person = new person(); arraylist<person> list = new arraylist<person>(); person.id= 222; person.name= "李四"; person.ismale= false; person.avatar= "http://bbbbbbbbb"; string jsonstr = gson.tojson(list); log.v("=============", list);

二、json-->對象

   反過來如何解序列化呢(也就是解析json)?

   還是先以person對象為例:

private final string json_str = "{\"avatar\":\"http://aaaaaaaaa\",\"name\":\"博張三\",\"id\":111,\"ismale\":true}"; person person = gson.fromjson(json_str, person.class);

  沒錯,就是如此簡單,如果是list或者map也同樣簡單(同樣以list為例):

private final string json_str= "[{\"avatar\":\"http://aaaaaaaaa\",\"name\":\"張三\",\"id\":111,\"ismale\":true},{\"avatar\":\"http://bbbbbbbbb\",\"name\":\"李四\",\"id\":222,\"ismale\":false}]"; type listtype = newtypetoken<list<person>>(){}.gettype(); list = gson.fromjson(json_str, listtype);

恩,使用起來确實比拿到jsonobject然後一層一層、一個一個去get要友善很多,不過我也是剛剛接觸,正在摸索學習中,如果大家遇到問題也可以提出來一塊研究。