Gson框架(入门)

Gson框架

     GSON是一个Java库,可用于将Java对象转换为它们的JSON表示形式。
     它还可以用于将JSON字符串转换为等效的Java对象。gson可以处理任意Java对象
     --摘自:https://github.com/google/gson
     实际是就是方便我们解析json

使用方法:

一、只含一个json(不涉及嵌套)

json格式(http://148.70.46.9/object)

{
“age”:30,
“name”:“张三”,
“isstudent”:true
}

2.定义一个类,来存放json数据
public class Student {
    public  int age;
    public  String name;
    public  String isstudent;
}

3.在MainActivity的onCreate的onSuccess中调用下面函数
  Gson gson=new Gson();
  Student student=gson.fromJson(result,Student.class);

在这里插入图片描述
通过调试我们可以看到已经成功获取到json数据
在这里插入图片描述

二、嵌套了一个json

1. json格式(http://148.70.46.9/object1)

{
“age”:20,
“name”:“张三”,
“isstudent”:true,
“class”:{
“grade”:“18级”,
“classname”:“中医学”
}
}

2.定义一个类,来存放json数据
import com.google.gson.annotations.SerializedName;

/*{
        "age":20,
        "name":"张三",
        "isstudent":true,
        "class":{
        "grade":"18级",
        "classname":"中医学"
        }
        }*/
public class Student {
    public  int age;
    public  String grade;
    public  boolean isstudent;
    @SerializedName("class")
    public  MyClass class1;
    public  class MyClass{
        String grade;
        String classname;
    }
}

在这里插入图片描述

三 、数组

1.http://148.70.46.9/array

[ “张三”, “李四”, “王五” ]

2.定义一个数组,来存放json数据
 Gson gson=new Gson();
 String string[]=gson.fromJson(result,String[].class);

在这里插入图片描述

四、数组里面还有json对象

[
{
“id”:“001”,
“age”:30,
“name”:“张三”,
“isstudent”:false
},
{
“id”:“002”,
“age”:25,
“name”:“李四”,
“isstudent”:true
},
{
“id”:“003”,
“age”:26,
“name”:“王五”,
“isstudent”:true
}
]

2.定义一个类,来存放json数据
/*
        "id":"001",
        "age":30,
        "name":"张三",
        "isstudent":false
    }*/
public class Student {
    public  String id;
    public  int age;
    public  String name;
    public  boolean isstudent;
  
}

  Gson gson=new Gson();
                        List<Student>  list= gson.fromJson(result,new TypeToken<ArrayList<Student>>(){}.getType());

在这里插入图片描述

五、 json对象中有对象数组

1.

{
“grade”:“18级”,
“classname”:“中医学”,
“students”:[
{
“id”:“001”,
“age”:30,
“name”:“张三”,
“isstudent”:false
},
{
“id”:“002”,
“age”:25,
“name”:“李四”,
“isstudent”:true
},
{
“id”:“003”,
“age”:26,
“name”:“王五”,
“isstudent”:true
}
]
}

2.类
import java.util.ArrayList;

/*
        {
    "grade":"18级",
    "classname":"中医学",
    "students":[
        {
            "id":"001",
            "age":30,
            "name":"张三",
            "isstudent":false
        },
        {
            "id":"002",
            "age":25,
            "name":"李四",
            "isstudent":true
        },
        {
            "id":"003",
            "age":26,
            "name":"王五",
            "isstudent":true
        }
    ]
}
    }*/
public class Student {
    public  String grade;
    public  String classname;
    //存放数组
    ArrayList<MyStudent> students=new ArrayList();
    //数组里面的对象
    public class MyStudent{
        public String id;
        public int age;
        public String name;
        public boolean isstudent;
    }

}

 Gson gson=new Gson();
 Student student=gson.fromJson(result,Student.class);

在这里插入图片描述
在这里插入图片描述

六、插件:GsonFormat(方便简化创建实体类存json的过程)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、 总结:

1.如果解析的是json对象的话,就直接通过 Gson gson=new Gson();
Student student=gson.fromJson(result,类.class);
;至于类里面怎么定义需要根据json的数据形式来顶;
2.如果给的是一个数组形式解析,我们直接就可以Gson gson=new Gson();
String string[]=gson.fromJson(result,String[].class);

3.如果是数组里面还有json对象就用Gson gson=new Gson();
List list= gson.fromJson(result,new TypeToken<ArrayList>(){}.getType());

猜你喜欢

转载自blog.csdn.net/qq_45353823/article/details/105762999