天天看点

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要方便很多,不过我也是刚刚接触,正在摸索学习中,如果大家遇到问题也可以提出来一块研究。