当前位置: 首页 > web >正文

Android-第十二节JSON解析第三方框架Gson,谈一谈Binder的原理和实现一次拷贝的流程

//通过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 list=gson.fromJson(result, new TypeToken<ArrayList>(){}.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=new ArrayList<>();

public class Students{

public String id;

public int age;

public String name;

public boolean isstudent;

}

}

在这里插入图片描述

核心代码:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

下面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

image

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

image

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

下面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题全套解析,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,下面只是以图片的形式给大家展示一部分。

[外链图片转存中…(img-LOeUGVx9-1712371148938)]

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

[外链图片转存中…(img-y2I7l4yj-1712371148938)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

http://www.xdnf.cn/news/11529.html

相关文章:

  • 蚂蚁集团智能部研究型实习腾讯大模型实习!
  • 中国高校BBS大全
  • AF_UNSPEC、AF_INET和AF_INET6之间的关系
  • mysql 1061报错_mysql主从 1061 log同步错误处理
  • [转载] SQL习题及答案
  • 分析Win7系统各种版本的区别 你的电脑适合哪个版本?
  • 192. Web前端网页制作 《你的名字》动漫主题网页设计实例 大学生期末大作业 html+css+js
  • C语言程序设计(第四版)—习题10程序设计题
  • Android OpenGL使用GLSurfaceView预览视频
  • 心脏出血(Heartbleed)漏洞浅析、复现
  • 【详解智能座舱通信技术--转载】
  • Android 2.3定制ROM CyanogenMod 7装机量超22万
  • 提示“QQ在线状态服务尚未启用,您需要添加对方为好友才能与其进行会话”解决方法
  • 奇妙动漫世界
  • 工业大数据浅析(上篇)——工业大数据的概念、发展及价值
  • 声屏障:声屏障
  • 软件开发的必备步骤
  • 超全的数据可视化图表组件,建议收藏!
  • 如何正确对待止损止盈?6大止损法、10种止盈技巧,让你的利润奔跑!
  • 在线代理(Web ProxyServer)完全详解
  • 全站静态化
  • 清除系统LJ(绿色单文件版)
  • 《大数据之路:阿里巴巴大数据实践》:看阿里人从IT时代走向DT时代的经验之谈!_大数据之路 阿里巴巴大数据实践 感悟(1)
  • 医院门诊排队叫号系统
  • offsetParent 深度解析
  • 继电器的工作原理及驱动电路
  • NSIS 下载
  • bluetooth外围设备找不到驱动程序怎么解决
  • 从数据库中取时间值,遇到:java.sql.Timestamp cannot be cast to java.lang.Long
  • android 9.0广播动态注册和接收流程