目录 一、Gson简介二、Gson使用方法三、Gson解析数据3.1Gson解析JSON对象3.2Gson解析JSON对象嵌套3.3Gson解析JSON数组3.4Gson解析json对象数组3.5Gson解析json对象嵌套JSON对象数组3.6总结 四、插件推荐
一、Gson简介
Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。Gson可以处理任意Java对象,包括您没有源代码的预先存在的对象。 开源地址: https://github.com/google/gson.
二、Gson使用方法1.导入依赖包:
implementation 'com.google.code.gson:gson:2.9.0'2.同步
三、Gson解析数据 3.1Gson解析JSON对象案例1:
json数据: { “name”: “耀阳”, “age”:20, “sex”:“boy”}
1.修改端口,并且创建实体类(实体类变量名和json数据中key对应) 2.与json数据对应 3.创建Gson对象,然后获取实体类对应的数据
Gson gson=new Gson(); //创建Gson对象 Person person=gson.fromJson(result,Person.class);//第一个值传json数据,第二个值传解析的类型4.运行结果: 5.可采用debug模式 6.对比之前用json方法解析步骤
//解析json对象数据 JSONObject jsonObject=new JSONObject(finalResult); //通过key来获取结果 String name=jsonObject.getString("name"); Integer age=jsonObject.getInt("age"); String sex=jsonObject.getString("sex"); Log.i("Main","解析之后的数据 name: "+name+"age: "+age+"sex: "+sex);可以看出Gson解析省去了这些通过对应字段去取数据的步骤,而是可以直接帮我们解析实体类对应字段的值
3.2Gson解析JSON对象嵌套案例2:
json数据:{ “age”:20, “name”:“耀阳”, “isboy”:true, “address”: { “province”:“湖南省”, “city”:“长沙市” } }
1.创建对应的实例类: 核心代码:
//json数据:{ //“age”:20, //“name”:“耀阳”, //“isboy”:true, //“address”: // { //“province”:“湖南省”, //“city”:“长沙市” // } // } public String name; public int age; public String sex; public Address address; public class Address{ public String province; public String city; }2.activity代码只需要修改接口,其他的都不用改
3.3Gson解析JSON数组案例3:
json数据: [ “false”, “true”, “false” ]
我们可以看到这是一个字符串数组,不是一个json对象,那我们就用一个字符串数组来接收,解析方法不变
核心代码:
Gson gson=new Gson(); String[] strings=gson.fromJson(result,String[].class); 3.4Gson解析json对象数组案例4:
json数据: [ { “id”:“001”,“age”:30,“name”:“刘伟”, “isboy”:true }, { “id”:“002”,“age”:12,“name”:“微凉”, “isboy”:false }, { “id”:“003”,“age”:25,“name”:“阿欢”, “isboy”:false }, ]
1.创建新的实体类 核心代码:
public class Person2 { // [ // { "id":"001","age":30,"name":"刘伟", "isboy":true }, // { "id":"002","age":12,"name":"微凉", "isboy":false }, // { "id":"003","age":25,"name":"阿欢", "isgirl":false }, // ] public String id; public int age; public String name; public boolean isboy; }代码:
Gson gson=new Gson(); List<Person2> list=gson.fromJson(result, new TypeToken<ArrayList<Person2>>(){}.getType()); 3.5Gson解析json对象嵌套JSON对象数组案例5:
{ “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 } ] }
1.创建实体类:
核心代码:
public class Person3 { public String grade; public String classname; public ArrayList<Students> students=new ArrayList<>(); public class Students{ public String id; public int age; public String name; public boolean isstudent; } }核心代码:
Gson gson=new Gson(); Person3 person3=gson.fromJson(result,Person3.class); 3.6总结json数据如果是大括号{}开头的,我们就把它解析成一个对象,如果是中括号【】开头的,我们就把它解析到一个List<>里面
四、插件推荐GsonFormat一键生成实体类 1.创建实体类 2.将json代码复制进去,点击确定: 3.自动生成所需代码: 4.点击运行结果: 大家有没有发现现在越来越方便了 从一开始网络请求需要手写Thread线程,到json代码解析,再到现在gson对json进行解析 加油!越来越多的框架值得我们去学习冲冲冲!
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |