PHP json_decode() 函数

PHP json_decode() 函数

在 PHP 中,对变量进行 Json 解码使用 json_decode 函数。同时,在 PHP 中,对变量进行 Json 解码出错时,使用 json_last_error 函数获取相关错误信息。

json_decode() 函数详解

语法

json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]]);

参数

参数 描述
json_string 必选参数。需转换的 JSON 数据。
assoc 可选参数。当该参数为 TRUE 时,将返回数组而非对象。该参数默认为 FALSE。
depth 可选参数。整数类型的参数,它指递归深度。
options JSON 解码的掩码选项,目前有两个支持选项:
JSON_BIGINT_AS_STRING,用于将大整数转为字符串而非默认的 float 类型。
JSON_OBJECT_AS_ARRAY,与将 assoc 设置为 TRUE 有相同的效果。

返回值

返回转换后的对象。

实例

将JSON转化为对象

我们创建一个 haicoder.php 文件,输入以下代码:

<?php $json ='{"name":"haicoder","url":"www.haicoder.net"}'; var_dump(json_decode($json));

我们在命令行中,输入以下命令,执行该程序:

php -f haicoder.php

执行完成后,控制台输出如下:

04 php json_decode.png

我们使用 json_decode() 函数,将一个 json 字符串转换成了 php 对象。

将JSON转化为数组

我们创建一个 haicoder.php 文件,输入以下代码:

<?php $json ='{"name":"haicoder","url":"www.haicoder.net"}'; var_dump(json_decode($json, true));

我们在命令行中,输入以下命令,执行该程序:

php -f haicoder.php

执行完成后,控制台输出如下:

05 php json_decode.png

我们使用 json_decode() 函数,并且第二个参数传 true,将一个 json 字符串转换成了 php 数组。

json_decode()精度丢失问题

我们创建一个 haicoder.php 文件,输入以下代码:

<?php $json ='{"id":800957900872008790078,"name":"haicoder","url":"www.haicoder.net"}'; var_dump(json_decode($json,true));

我们在命令行中,输入以下命令,执行该程序:

php -f haicoder.php

执行完成后,控制台输出如下:

06 php json_decode.png

我们使用 json_decode() 函数,转换一个很大的数字时,精度丢失了。

json_decode()解决精度丢失问题

我们创建一个 haicoder.php 文件,输入以下代码:

<?php $json ='{"id":800957900872008790078,"name":"haicoder","url":"www.haicoder.net"}'; var_dump(json_decode($json,true,512,JSON_BIGINT_AS_STRING));

我们在命令行中,输入以下命令,执行该程序:

php -f haicoder.php

执行完成后,控制台输出如下:

07 php json_decode.png

我们使用 json_decode() 函数,转换一个很大的数字时,我们使用选项 JSON_BIGINT_AS_STRING ,防止精度丢失。

PHP json_decode() 函数总结

在 PHP 中,对变量进行 Json 解码使用 json_decode 函数。同时,在 PHP 中,对变量进行 Json 解码出错时,使用 json_last_error 函数获取相关错误信息。