在 PHP 中,对变量进行 Json 解码使用 json_decode 函数。同时,在 PHP 中,对变量进行 Json 解码出错时,使用 json_last_error 函数获取相关错误信息。
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
执行完成后,控制台输出如下:
我们使用 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
执行完成后,控制台输出如下:
我们使用 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));
我们在命令行中,输入以下命令,执行该程序: