把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要友善很多,不過我也是剛剛接觸,正在摸索學習中,如果大家遇到問題也可以提出來一塊研究。