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