PHP JSON
1. 什么是 JSON?
JSON 代表 JavaScript Object Notation(JavaScript 对象表示法),是一种用于存储和交换数据的语法。
由于 JSON 格式是基于文本的,因此它可以轻松地在服务器之间发送,并被任何编程语言用作数据格式。
2. PHP 与 JSON
PHP 拥有内置函数来处理 JSON 数据。主要包含以下两个函数:
json_encode():将 PHP 变量(如数组或对象)转换为 JSON 格式的字符串。json_decode():将 JSON 格式的字符串转换为 PHP 变量(对象或关联数组)。
3. PHP json_encode() 函数
json_encode() 函数用于将值编码为 JSON 格式。
3.1 编码关联数组
下例展示了如何将关联数组编码为 JSON 字符串:
代码示例:
<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
echo json_encode($age);
?>3.2 编码索引数组
下例展示了如何将索引数组编码为 JSON 字符串:
代码示例:
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo json_encode($cars);
?>4. PHP json_decode() 函数
json_decode() 函数用于将 JSON 字符串解码为 PHP 对象或关联数组。
4.1 基本解码示例
下例将 JSON 数据解码为 PHP 对象:
代码示例:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj));
?>默认情况下,json_decode() 返回一个对象。如果你希望将其解码为关联数组,需要将该函数的第二个参数设置为 true:
代码示例:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj, true));
?>5. 访问解码后的值
如何访问解码后的值取决于它是被转换为对象还是关联数组。
5.1 访问对象属性
下例展示了如何访问 PHP 对象的属性:
代码示例:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
echo $obj->Peter;
echo $obj->Ben;
echo $obj->Joe;
?>5.2 访问关联数组元素
下例展示了如何访问 PHP 关联数组的元素:
代码示例:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
echo $arr["Peter"];
echo $arr["Ben"];
echo $arr["Joe"];
?>6. 循环遍历值
您可以使用 foreach 循环来遍历解码后的数据。
6.1 遍历对象示例
代码示例:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
foreach($obj as $key => $value) {
echo $key . " => " . $value . "<br>";
}
?>6.2 遍历关联数组示例
代码示例:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
foreach($arr as $key => $value) {
echo $key . " => " . $value . "<br>";
}
?>