在此代码中,我们可以找到有关如何使用 PHP 创建和解析 JSON 数据的分步教程。
按照步骤操作,我们将轻松实现目标。
JSON 的数据结构与 PHP 数组相同。
存在允许编码和解码 JSON 数据的特定内置函数。
它们是 json_encode() 和 json_decode() 函数。
但是,请考虑到这些函数仅对字符串数据进行操作,仅对 UTF-8 进行操作。
在 PHP 中,第一个函数用于将值编码为 JSON 格式。
在下面的示例中,我们可以看到将关联的 PHP 数组编码为 JSON 对象的过程:
<?php //关联数组 $marks = array("John"=>68, "George"=>75, "David"=>65, "Roger"=>40); echo json_encode($marks); ?>
它的输出将如下所示:
{"John":68,"George":75,"David":65,"Roger":40}
同理,一个带索引的 PHP 数组可以编码成一个 JSON 数组:
<?php //索引数组 $colors = array("Blue", "White, "Green", "Black", "Yellow"); echo json_encode($colors); ?>
并且,输出如下:
["Blue","White","Green","Black","Yellow"]
一个重要的注意事项:虽然关联数组可能会被编码为对象,但非关联数组可能会被编码为对象和数组。
要解析 JSON 数据,我们可以使用解码。
它就像编码一样简单。
它主要用于将 JSON 编码的字符串转换为 PHP 的匹配数据类型。
为了更好地理解,请查看以下示例:
<?php //将 JSON 数据存储在 PHP 变量中 $json = '{"George":63,"David":75,"Harold":60,"Jack":80}'; var_dump(json_decode($json)); ?>
这是上面示例的输出:
object(stdClass)#1 (4) { ["George"]=> int(63) ["David"]=> int(75) ["Harold"]=> int(60) ["Jack"]=> int(80) }
因此,默认情况下, json_decode() 函数返回一个对象。
但是,可以指定诸如 $assoc 之类的可选参数。
这是它的样子:
<?php //将 JSON 数据存储在 PHP 变量中 $json = '{"George":63"David":75,"Harold":60,"Clark":90}'; var_dump(json_decode($json, true)); ?>
其输出如下:
array(4) { ["George"]=> int(63) ["David"]=> int(75) [Harold"]=> int(60) ["Clark"]=> int(90) }
在下一个示例中,说明了如何解码 JSON 数据,访问数组或者对象的各个元素:
<?php //将 JSON 编码的字符串分配给 PHP 变量 $json = '{"George":63,"David":75,"Harold":60,"Clark":90}'; //将 JSON 数据解码为 PHP 关联数组 $arr = json_decode($json, true); //从关联数组访问值 echo $arr["George"]; //Output: 63 echo $arr["David"]; //Output: 75 echo $arr["Harold"]; //Output: 60 echo $arr["Clark"]; //Output: 90 //将 JSON 数据解码为 PHP 对象 $obj = json_decode($json); //从返回的对象访问值 echo $obj->George; //Output: 63 echo $obj->David; //Output: 75 echo $obj->Harold; //Output: 60 echo $obj->Clark; //Output: 90 ?>
此外,解码数据可以通过这种方式使用 foreach() 循环:
<?php //将 JSON 编码的字符串分配给 PHP 变量 $json = '{"George":63,"David":75,"Harold":60,"Clark":90}'; //将 JSON 数据解码为 PHP 关联数组 $arr = json_decode($json, true); //遍历关联数组 foreach($arr as $key=>$value){ echo $key . "=>" . $value . "<br>"; } echo "<hr>"; //将 JSON 数据解码为 PHP 对象 $obj = json_decode($json); //循环遍历对象 foreach($obj as $key=>$value){ echo $key . "=>" . $value . "<br>"; } ?>
关于 JSON
JSON 或者 JavaScript 对象表示法是一种数据交换格式,允许直接解析和创建。
它是一种基于文本的格式,书写简单,便于计算机和人类理解。
JSON 有两个主要结构:对象和数组。
第一个称为值/键对的集合。
第二个是有序值列表。
键始终被视为 JSON 格式的字符串,而值可以是对象、数组、字符串、数字等。