google-gson使用解析

来源:互联网 发布:日本读研 知乎 编辑:程序博客网 时间:2024/05/19 20:21

      今天看到一个项目中用到了,gson来处理json数据,所以注意了下怎么使用,个人觉得有个是比较简单或者虽然复杂但是有规律的json数据可以使用gson来处理,如果是较复杂的json数据还是自己解析的好。这里介绍下gson的简单使用,即实体类和json数据之间的转换。

1、首先是实体类到json数据的转换

Person实体 public class Person {    private String name;    private int age;    /**     * @return the name     */    public String getName() {        return name;    }    /**     * @param name the name to set     */    public void setName(String name) {        this.name = name;    }    /**     * @return the age     */    public int getAge() {        return age;    }    /**     * @param age the age to set     */    public void setAge(int age) {        this.age = age;    }        @Override    public String toString()    {        return name + ":" +age;    }}


生成json数据

生成Json字符串 Gson gson = new Gson();List<Person> persons = new ArrayList<Person>();for (int i = 0; i < 5; i++) {     Person p = new Person();     p.setName("name" + i);     p.setAge(i * 5);     persons.add(p);}String str = gson.toJson(persons)

结果:

[{"name":"name0","age":0},{"name":"name1","age":5},{"name":"name2","age":10},{"name":"name3","age":15},{"name":"name4","age":20}]

其中toJson()为主要使用转换方法。

2、再介绍从json数据到实体类的转换

   先看一种简单的实体类转换:

Person person = gson.fromJson(str, Person.class);

 主要使用方法:fromJson(str,class);

当要转换成list或者Set类型的时候:

List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());for(int i = 0; i < ps.size() ; i++){     Person p = ps.get(i);     System.out.println(p.toString());}

我们需要用到类型转换器TypeToken:new TypeToken<List<Person>>(){}.getType()

 

     

0 0