如何使用 PHP 创建和解析 JSON 数据

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

日期:2020-06-02 22:15:43 来源:oir作者:oir