目录
1 对变量进行 JSON 编码
string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )
1 value
待编码的 value ,除了resource 类型之外,可以为任何数据类型。所有字符串数据的编码必须是 UTF-8。
Note:
PHP implements a superset of JSON as specified in the original » RFC 7159.
2 options
由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS,JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT,
JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。 关于
JSON 常量详情参考JSON 常量页面。
3 depth
设置最大深度。 必须大于0。
版本 | 说明 |
---|---|
7.1.0 | 对 Double 的值进行编码时,使用 serialize_precision 代替 precision。 |
5.6.6 | options 参数增加常量: JSON_PRESERVE_ZERO_FRACTION |
5.5.0 | 增加 depth 参数。 |
5.5.0 | 增加了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项。 |
5.5.0 | 失败时返回的值从 null 字符串改成 FALSE 。 |
5.4.0 | options 参数增加常量: JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES , 和 JSON_UNESCAPED_UNICODE 。 |
5.3.3 | options 参数增加常量:JSON_NUMERIC_CHECK 。 |
5.3.0 | 增加 options 参数. |
2 对 JSON 格式的字符串进行解码
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
1 json
待解码的 json string 格式的字符串。这个函数仅能处理 UTF-8 编码的数据。
Note:
PHP implements a superset of JSON as specified in the original » RFC 7159.
2 assoc
当该参数为 TRUE 时,将返回 array 而非 object 。3 depth
指定递归深度。4 options
JSON解码的掩码选项。 现在有两个支持的选项。 第一个是JSON_BIGINT_AS_STRING, 用于将大整数转为字符串而非默认的float类型。第二个是 JSON_OBJECT_AS_ARRAY, 与将assoc设置为 TRUE 有相同的效果。
3 json的简易使用
3.1 数组到json
<?php
$score=['math'=>88,
'chinese'=>98,
'english'=>87];
$json=json_encode($score);
echo $json;
?>
3.2 json到数组
<?php
$score=['math'=>88,
'chinese'=>98,
'english'=>87];
$json=json_encode($score);
echo $json;
$arr=json_encode($json);
var_dump($arr);
?>
3.3 对象转json
<?php
class Student{
public $name='lwqbrell';
public $age=22;
public $sex='boy';
}
$s=new Student();
$json=json_encode($s);
echo $json;
?>
3.4 json转对象
<?php
class Student{
public $name='lwqbrell';
public $age=22;
public $sex='boy';
}
$s=new Student();
$json=json_encode($s);
echo $json;
$obj=json_decode($json);
var_dump($obj);
?>
3.5 json转数组
(原本数据为对象的,可以通过json_decode()转为数组,注:将json_decode的第二个参数设为true)
<?php
class Student{
public $name='lwqbrell';
public $age=22;
public $sex='boy';
}
$s=new Student();
$json=json_encode($s);
echo $json;
$obj=json_decode($json,true);
var_dump($obj);
?>