PHP 简明教程

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>";
}
?>