文章目录 1.PHP json_encode PHP json_encode示例1 PHP json_encode示例2 2. PHP json_decode PHP json_decode示例1 PHP json_decode示例2 PHP允许我们使用json_enc……
文
章
目
录
- 1.PHP json_encode
- PHP json_encode示例1
- PHP json_encode示例2
- 2. PHP json_decode
- PHP json_decode示例1
- PHP json_decode示例2
PHP允许我们使用json_encode()和json_decode()函数来编码和解码JSON。
1.PHP json_encode
json_encode()函数返回一个值的JSON表示。换句话说,它将包含数组的PHP变量转换为JSON。
语法:
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
- 参数说明如下:
$value:要转换的变量,变量可以是任意数据类型; - $depth:可选参数,用来设置递归的最大深度,它的值必须大于 0,默认值为 512,同 $options 参数一样,该参数同样不怎么使用。
- $options:可选参数,默认值为 0,可选值为以下:
PHP 常量:JSON_FORCE_OBJECT、JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、 JSON_NUMERIC_CHECK、JSON_PARTIAL_OUTPUT_ON_ERROR、JSON_PRESERVE_ZERO_FRACTION、JSON_PRETTY_PRINT、JSON_UNESCAPED_LINE_TERMINATORS、JSON_UNESCAPED_SLASHES、JSON_UNESCAPED_UNICODE、JSON_THROW_ON_ERROR。
关于这些常量了解即可,一般不怎么使用,它们的具体含义您可以通过 JSON 常量查阅;
若转换成功,json_encode() 函数会返回字符串类型的转换结果,若转换失败,则返回 false。
PHP json_encode示例1
让我们看一个编码JSON的示例。
<?php
$arr = array(\'a\' => 1, \'b\' => 2, \'c\' => 3, \'d\' => 4, \'e\' => 5);
echo json_encode($arr);
?>
输出:
{\"a\":1,\"b\":2,\"c\":3,\"d\":4,\"e\":5}
PHP json_encode示例2
让我们看一个编码JSON的示例。
<?php
$arr2 = array(\'firstName\' => \'Rahul\', \'lastName\' => \'Kumar\', \'email\' => \'rahul@gmail.com\');
echo json_encode($arr2);
?>
输出:
{\"firstName\":\"Rahul\",\"lastName\":\"Kumar\",\"email\":\"rahul@gmail.com\"}
2. PHP json_decode
json_decode()函数解码JSON字符串。换句话说,它将JSON字符串转换为PHP变量。
语法:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
参数说明如下:
- $json:必填参数,要解析的 JSON 字符串;
- $assoc:可选参数,默认值为 false,若将值设置为 true,那么 json_decode() 函数将返回一个数组;
- $depth:可选参数,用来设置递归的最大深度,默认值为 512,也可以设置为其它大于 0 的值;
- $options:可选参数,默认值为 0,可选值为 JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、JSON_OBJECT_AS_ARRAY、JSON_THROW_ON_ERROR 等常量,可以同时设置多个常量,常量之间使用竖线
|
进行分隔。
若解析成功,json_decode() 函数会返回 JSON 中的数据,若解析失败,或者 JSON 的数据深度超过了递归的限制,则返回 null。
PHP json_decode示例1
让我们看一个解码JSON字符串的示例。
<?php
$json = \'{\"a\":1,\"b\":2,\"c\":3,\"d\":4,\"e\":5}\';
var_dump(json_decode($json, true));//true 表示返回的对象将被转换为关联数组
?>
输出:
array(5) {
[\"a\"] => int(1)
[\"b\"] => int(2)
[\"c\"] => int(3)
[\"d\"] => int(4)
[\"e\"] => int(5)
}
PHP json_decode示例2
让我们看一个解码JSON字符串的示例。
<?php
$json2 = \'{\"firstName\" : \"Rahul\", \"lastName\" : \"Kumar\", \"email\" : \"rahul@gmail.com\"}\';
var_dump(json_decode($json2, true));
?>
输出:
array(3) {
[\"firstName\"]=> string(5) \"Rahul\"
[\"lastName\"]=> string(5) \"Kumar\"
[\"email\"]=> string(15) \"rahul@gmail.com\"
}
还没有评论呢,快来抢沙发~