当前课程知识点:Android应用开发基础 > 第九章 网络技术 > 9.3 Json > 9.3 Json
本节我们介绍Json格式
1 Json是一种轻量级的数据交换格式
简洁和清晰的层次结构
使得成为理想的数据交换语言
2 Json易于机器解析和生成
可以有效的提升网络传输效率
3 Json完全独立于编程语言的文本格式
来存储和表示数据
Json的特点是便于跨平台使用
广泛应用于服务器和各种客服端的数据交换
下面我们看一个具体的Json例子
1 任何支持类型都可以使用JSON表示
比如字符串 数字 对象 数组
2 Json数据结构为
{"key1":"value1 ", "key2 " :"value2 ", ...}
的键值对结构
3 Json也可以表示数组
数组为
[{{"key1":"value1 ", "key2 " :"value2 ",…},…]
的键值对结构
Json数据访问主要需要三方面的设置
1 服务器地址URL
http://139.199.220.137:8080/api/v2/get_weather
这就是一个URL地址
2 客服端向服务器传递参数
有POST和GET两两种方式
3 GET将参数封装到URL中
网络的所有人都能看到
POST将参数封装到Request中的Body中
网络上看不到
Json数据访问服务器接口如下表所示
1 调用路径
这个由服务器提供
2 HTTP请求方式
分为GET和POST两种
3 入参
如果是POST方式
需要将参数封装到Request中的Body中
4 返回值
服务器返回的JSON数据格式
客服端根据格式进行解析和提取
Json数据访问-接口样例如下表所示
1 Json参数
客服端请求访问需要将参数
按照Json格式封装到Request中的Body中
2 返回值
服务器返回的JSON数据格式
客服端根据格式进行解析和提取
3 Json访问的代码可以由工具自动生成
大大降低了网络访问的编码难度
Json数据接口测试可以使用postman工具
1 新建一个接口文件夹并命名
2 新建接口并命名后保存
postman中需要对接口进行设置
1 选择POST协议
2 输入服务器的Url参数
3 将POST参数按照Json格式封装到
Request中的Body中
4 点击发送
5 服务器返回JSON数据
6 根据服务器返回的JSON数据
点击Code
选择自动生成Java访问网络服务器的代码
选择Java代码后
可以自动生成OkHttp框架访问代码
下面我们介绍GsonFormat插件
主要用于使用Gson库
将JSONObject格式的String解析成实体
安装过程如图
在File-Setting-Plugins中进入插件窗口
搜索GsonFormat点击下载
可以使用GsonFormat插件
直接将服务器返回的Json数据格式
转换为程序可以直接使用的类对象
Json数据Bean类的自动生成如下
1 项目中新建Bean包
在Bean包下新建一个Weather类
2 进入Weather类
右键选择Generate->GsonFormat插件
3 将服务器返回的Json数据拷贝到Edit对话框
4 点击Ok就可以自动生成Weather类
下面我们介绍一个访问天气实例的应用
应用从服务器获取最近一周的天气信息并显示
点击刷新
应用重新从服务器获取数据并更新
GsonFomat根据Json数据
自动生成Weather类对象
新建okhttp3.Callback对象并初始化
如图所示
1 新建okhttp3.Callback网络监听器对象
2 初始化网络监听器对象
3 实现onFailure接口
4 实现onResponse接口
5 将网络成功后获取数据解析
主视图中启动OkHttp网络请求访问
如图所示
1 创建OkHttpClienet实例
2 设置Post访问请求参数
3 根据网络请求的ip地址和body内容
创建Request请求对象
4 使用newCall创建一个Call对象
调用execute发送请求获取数据
并设置回调接口为okhttp3.Callback监听器对象
使用Gson将JSON数据解析为Weather对象
提取信息更新UI组件
1 新建Gson对象
2 使用Gson将Json数据转换为Weather对象
3 解析Json数组
并分别解析日期和气温数据
4 显示一周的气温数据
这就是使用okhttp框架
解析Json数据的详细过程
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统