内容正文:
第13章 使用网络
Android Studio 移动应用开发基础(第 2 版)
目录
13.1 使用 ConnectivityManager 管理网络状态
13.2 使用 HttpURLConnection 访问网络
13.3 同步练习一
13.4 使用 OkHttp 访问网络
13.5 OkHttp GET 实现案例
13.6 OkHttp POST 实现案例
13.7 同步练习二
13.8 使用 Multipart 传递请求数据到服务器端
13.9 同步练习三
13.10 使用 JSON 格式的数据与服务器端通信
13.10 使用 JSON 格式的数据与服务器端通信
JSON 是一种数据交换的标准格式。本节主要介绍 JSON 的概念和应用。
13.10.1 JSON 基础
JSON 是一种轻量级的数据交换格式,它使用 name/value 对表示数据。JSON 支持两种结构:以“{}”(大括号)表示的对象数据和以“[]”(中括号)表示的数组数据。JSON 表示数据的能力在于,它可以使用两种基础格式的组合表示任意复杂的数据。
如果一个 JSON 数据是对象数据,则使用“变量名.成员名”的方式访问该 JSON 数据。
如果一个 JSON 数据为数组数据,则使用“变量名[下标].成员名”的方式访问该 JSON 数据。
JSON 数据属性的数据类型可以是计算机支持的任意数据类型,包括数字、字符串、逻辑值(true 或 false)、数组、对象、null。
13.10.2 在 JavaScript 中使用 JSON 数据
JSON 是 JavaScript 支持的原生数据格式,因此在 JavaScript 中使用 JSON 数据非常简单。例如,在 JavaScript 中,可以直接设置变量的值为一个 JSON 数据,代码如下:
13.10.3 在 Java 中使用 JSON 数据
Java 不能直接支持 JSON 数据。在 Java 中,一个 JSON 数据被看作一个字符串,称为 JSON串。通过使用第三方提供的 Jar 包,可以将 JSON 串转换为一个 Java 对象,也可以将一个 Java对象转换为一个 JSON 串;
在这些第三方包中,目前较好用且使用较广泛的是 Google 提供的Gson 包;
可以在 Google 的开发者网站上下载 Gson 包。我们使用 Gson 包的 2.3.1 版本,即 gson- 2.3.1.jar 包。在下载完毕后,将 gson-2.3.1.jar 包复制到工程的 libs 目录下,然后选中该包并右击,在弹出的快捷菜单中选择 Add as Library 命令,就可以使用 Gson 包了。
定义一个 Person 类:
基于 Person 类,将一个 JSON 串转换为 Person 对象,以及将一个 Person 对象转换为 JSON串:
13.10.4 使用 POST 方法及 JSON 数据格式发送请求
使用HTTP的POST方法和JSON数据格式与服务器端进行HTTP通信。本案例应用程序要实现的功能与 13.2 节中案例应用程序要实现的功能相同,运行效果也与图 13-3 所示的运行效果相同。
为了处理 JSON 格式的数据请求,在服务器端创建一个名为 ImageShowerJSON 的 Servlet:
修改布局文件 res/layout/activity_main.xml:
res/values/strings.xml 文件:
修改 MainActivity.java 文件:
Q & A
$