Gson 复杂数据解析

来源:互联网 发布:linux shell 复制一行 编辑:程序博客网 时间:2024/04/29 01:09

一、简单数据解析

1、简单json转对象
Json字符串如下:{"name":"name22","age":22}
下边上Java代码

// UserData.javapublic class UserData {    public String name;    public int age;    @Override    public String toString() {        StringBuffer sb = new StringBuffer();        sb.append(" name: ");        sb.append(name);        sb.append(" age: ");        sb.append(age);        return sb.toString();    }}

转化代码:

//Gson gson = new Gson();//String jsonStr = "{\"name\":\"name22\",\"age\":22}";UserData userData = gson.fromJson(jsonStr, UserData.class);

2、简单数组json转List
Json字符串如下:[{"name":"name0","age":"0"},{"name":"name1","age":"5"}]
转化代码如下:

jsonStr = "[{\"name\":\"name0\",\"age\":\"0\"},{\"name\":\"name1\",\"age\":\"5\"}]";//List<UserData> list = gson.fromJson(jsonStr,                new TypeToken<List<UserData>>() {                }.getType());

3、简单List对象转Json
转化代码如下:

List<UserData> persons = new ArrayList<UserData>();for (int i = 0; i < 5; i++) {    UserData p = new UserData();    p.name = "name" + i;    p.age = i * 5;    persons.add(p);}// 关键代码Gson gson = new Gson();String str = gson.toJson(persons);

二、复杂数据解析

例:

public class InforData {    public int id;    public List<UserData> users;    @Override    public String toString() {        StringBuffer sb = new StringBuffer();        sb.append("id: ");        sb.append(id);        if (users != null) {            for (int i = 0; i < users.size(); i++) {                sb.append(users.get(i).toString());            }        }        return sb.toString();    }}

转化代码如下:

String jsonStr = "{\"id\":\"100\",\"users\":[{\"name\":\"name0\",\"age\":\"0\"},{\"name\":\"name1\",\"age\":\"5\"}]}";//InforData inforData = gson.fromJson(jsonStr, new TypeToken<InforData>() {}.getType());

案例代码下载:
http://download.csdn.net/detail/aiwusheng/8201649
参考链接:
Gson简单对象解析
http://www.cnblogs.com/chenlhuaf/archive/2011/05/01/gson_test.html
Gson复杂对象解析
http://blog.csdn.net/tkwxty/article/details/34474501