《Android和PHP开发最佳实践 》一3.3 使用JSON通信

简介: 本节书摘来自华章出版社《Android和PHP开发最佳实践 》一书中的第3章,第3.3节,作者 黄隽实,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.3 使用JSON通信

实际上,第1章中介绍如何结合Android和PHP学习时,我们就曾经提到过JSON协议,本节我们就来学习一下这个协议的基本内容。JSON是JavaScript对象表示法(JavaScript Object Notation)的简称,JSON协议源自JavaScript脚本语言的对象持久化表示方法,由于这种表示法比较简单易懂,而且传输的数据也比较小巧(相对于XML来说应该算是非常小巧了),因此,近年来被广泛地用于互联网应用的数据封装。
首先,我们来学习一下JSON协议的数据表示方法。在JSON协议中,最基本的数据结构只有两种。第一种是数组结构,该结构类似于PHP中的列表数组,结构如下。

["james","iris"]

第二种是对象结构,该结构非常类似于PHP中的散列数组,结构如下。

{"id":1,"name":"james"}

当然,将以上两种结构结合起来就可以产生其他形式的数据结构,比如对象数组,也就是类似于PHP中的“散列数组列表”的形式,结构如下。

[
{"id":1,"name":"james"},
{"id":2,"name":"iris"}
]

另外,JSON协议几乎支持所有主流语言的客户端,当然也包括PHP语言。在PHP中使用JSON非常方便,在PHP 5.2版本之后,PHP语言已经内置了JSON的加解码函数,即json_encode和json_decode。接下来,让我们来分析一下代码清单3-14中的逻辑代码。
代码清单 3-14

<?php 
// 原始数据
$arr = array(
    array(
     "id" => 1,
     "name" => "James"
    ),
    array(
     "id" => 2,
     "name" => "Iris"
    )
);
// 数组转换为JSON格式
$str = json_encode($arr);
echo "Array => JSON : ".$str."\n";
// JSON转换为数组格式
echo "JSON => Array : ";
$arr = json_decode($str);
print_r($arr);
?>

以上代码演示了如何使用PHP内置的加解码函数来进行JSON数据和PHP数组结构之间的相互转换,运行结果如图3-14所示。

image

这里随便提一下,在Android中我们使用org.json包来进行JSON加解码工作,JSON数组格式可使用JSONArray类处理,而对象结构则使用JSONObject类处理。关于Android使用JSON的具体使用方法和实例我们将在本书第7章的7.3.3节中做详细介绍。

相关文章
|
3月前
|
JSON PHP 数据格式
|
2天前
|
Android开发
Android JNI与CAN通信遇到的问题总结
Android JNI与CAN通信遇到的问题总结
24 1
|
11天前
|
安全 Android开发 数据安全/隐私保护
Android中的动态权限请求与最佳实践
【4月更文挑战第14天】 在现代安卓应用开发中,用户隐私和安全被赋予了前所未有的重要性。随着Android 6.0(API级别23)引入的运行时权限模型,开发者必须更加细致地处理权限请求,以确保应用功能的完整性同时不侵犯用户的隐私。本文将深入探讨如何在Android应用中实现动态权限请求,分析常见问题,并提供一系列最佳实践,以帮助开发者优雅地处理这一挑战。
21 5
|
22天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
1月前
|
JSON JavaScript PHP
PHP把unicode编码的json字符串转中文
PHP把unicode编码的json字符串转中文
13 0
|
3月前
|
JSON PHP 数据格式
|
3月前
|
JSON PHP 数据格式
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
|
3月前
|
JSON PHP 数据格式
php对‘[{“id“:“1“,“name“:“cyg”},{“id“:“2“,“name“:“liwen“}]json数据进行修改删除操作
php对‘[{“id“:“1“,“name“:“cyg”},{“id“:“2“,“name“:“liwen“}]json数据进行修改删除操作
php对‘[{“id“:“1“,“name“:“cyg”},{“id“:“2“,“name“:“liwen“}]json数据进行修改删除操作
|
7月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
81 0