使用Gson解析json数据

1. 使用gson解析json对象

1.首先,准备一个json对象格式的数据(以花括号开头和结尾的数据)
{
    "name":"zhangsan",
    "age":"20",
    "languages":[ {"num":1,"subject":"Java"}, {"num":2,"subject":"Swift"}, {"num":3,"subject":"C#"} ] }

2.将json对象转换成标准的javabean

public class JsonData {
    private String name;
    private String age;
    private List<Languages> languages;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public List<Languages> getLanguages() {
        return languages;
    }
    public void setLanguages(List<Languages> languages) {
        this.languages = languages;
    }
}
public class Languages {
    private String num;
    private String subject;
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
}

3.主函数在获得了json对象的字符串数据后,使用gson进行解析

    private void parseJsonDate(String jsonData) {
        Gson gson = new Gson();
        //将字符串类型的json对象数据转换成定义好的javabean中
        JsonData data = gson.fromJson(jsonData, JsonData.class); 

        System.out.println(data.getName());
        System.out.println(data.getAge());
        List<Languages> languages = data.getLanguages();
        for (Languages lan : languages) {
            System.out.println(lan.getNum());
            System.out.println(lan.getSubject());
        }
    }

很简单的,json对象数据就成功解析了。看下打印日志:
使用Gson解析json数据_第1张图片

2. 使用gson解析json数组

1.首先,准备一个json数组格式的数据(以中括号开头和结尾的数据)
[
    {
        "name": "zhangsan",
        "age": "20",
        "address": "beijing" },
    {
        "name": "lisi",
        "age": "21",
        "address": "shanghai" }
]

2.将json数组的数据封装成标准的javabean

public class JsonData {
    private String name;
    private String age;
    private String address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

3.主函数在获得了json数组的字符串数据后,使用gson进行解析

    private void parseJsonDate(String jsonData) {
        Gson gson = new Gson();
        //将字符串类型的json数组数据转换成定义好的javabean中,并指定返回的集合类型
        List<JsonData> data = gson.fromJson(jsonData, new TypeToken<List<JsonData>>() {}.getType());
        for (JsonData jsondata : data) { System.out.println(jsondata.getName()); System.out.println(jsondata.getAge()); System.out.println(jsondata.getAddress()); }
    }

json数组数据就转换成一个指定了类型的集合中了。看下日志:

你可能感兴趣的:(json,数组,gson,对象)