在此代码中,我们可以找到有关如何使用 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 格式的字符串,而值可以是对象、数组、字符串、数字等。
