文章目录
  1. 1. 解析单个对象
  2. 2. 命名
  3. 3. 对象的嵌套
  4. 4. 对象数组

Gson是Google提供的一个很棒的json解析库。

解析单个对象

比如有个一个Person类

1
2
3
4
public class Person{
public int age;
public String name;
}

解析时

1
2
String json = "..."; //json字符串
Person person = new Gson().fromJson(json,Person.class);

如果Person中还有一个Date的birth属性

1
2
3
4
5
public class Person{
public int age;
public String name;
public Date birth;
}

解析时设定格式

1
2
3
4
5
String json = "..."; 
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss");
Gson gson = gsonBuilder.create();
Person person = gson.fromJson(json,Person.class);

命名

gson默认需要类的属性名与JSON对应,但也可以通过@SerializeName来修改

1
2
3
4
public class Feed {
@SerializeName("birth");
public Date birthDay;
}

对象的嵌套

比如返回如下的数据

1
2
3
4
5
6
7
8
{
"id":100,
"name":"zoe"
"sub":{
"id":200,
"name":"zhai"
}
}

对应的对象应该是`

1
2
3
4
5
6
7
8
9
10
public class Feed {
public int id;
public String name;
public Sub sub;

public class Sub{
public int id;
public String name;
}
}

对象数组

形如下面的对象数组

1
2
3
4
5
6
7
8
9
10
[{
"id":100,
"name":"name100"
},
{
"id":101,
"name":"name101"
}
//...
]

解析方法有两种:

  1. 解析成数组

    1
    2
    3
    Sub[] subs = new Gson().fromJson(json,Sub[].class);
    //转List
    List<Sub> subs = Arrays.asList(subs);
  2. 解析成List

    1
    2
    Type listType = new TypeToken<ArrayList<Sub>>(){}.getType();
    ArrayList<Sub> subs = new Gson().fromJson(json,listType);
文章目录
  1. 1. 解析单个对象
  2. 2. 命名
  3. 3. 对象的嵌套
  4. 4. 对象数组