JSON(全称“JavaScript Object Notation”)是一种轻量级的数据交换格式,易于读写,广泛应用于 Web 开发领域。本节我们来介绍一下在 PHP 中如何创建和解析 JSON 数据。
PHP 中提供了 json_encode() 和 json_decode() 两个函数分别创建和解析 JSON 数据,其中:
json_encode() 函数能够将一个 PHP 变量转换为 JSON 数据,其语法格式如下:
参数说明如下:
若转换成功,json_encode() 函数会返回字符串类型的转换结果,若转换失败,则返回 false。
【示例】使用 json_encode() 函数将 PHP 变量转换为 JSON 格式:
<?php
$arr = [
"title" => "JSON教程",
"author" => "城东书院",
"url" => "http://www.cdsy.xyz/",
"catalogue" => [
"JSON是什么?",
"JSONP是什么?",
"JSON语法规则"
]
];
echo json_encode($arr);
?>
运行结果如下:
通过运行结果可以看出,在使用 json_encode() 函数将变量转换为 JSON 数据时,会将变量中的中文字符编码为 Unicode 字符(\uXXXX 格式的字符),如果不需要这样的转换,将 json_encode() 函数的第二个参数设置为 JSON_UNESCAPED_UNICODE 即可,如下例所示:
<?php
$arr = [
"title" => "JSON教程",
"author" => "城东书院",
"url" => "http://www.cdsy.xyz/",
"catalogue" => [
"JSON是什么?",
"JSONP是什么?",
"JSON语法规则"
]
];
echo json_encode($arr,JSON_UNESCAPED_UNICODE );
?>
运行结果如下:
json_decode() 函数能够解析 JSON 格式的字符串,并将解析后的结果保存到一个变量中,其语法格式如下:
参数说明如下:
若解析成功,json_decode() 函数会返回 JSON 中的数据,若解析失败,或者 JSON 的数据深度超过了递归的限制,则返回 null。
【示例】使用 json_decode() 函数解析 JSON 数据:
<?php
$str = '{"title":"JSON教程","author":"城东书院","url":"http:\/\/www.cdsy.xyz\/","catalogue":["JSON是什么?","JSONP是什么?","JSON语法规则"]}';
echo "<pre>";
var_dump(json_decode($str, true));
?>
运行结果如下: