PHP JSON的encode与decode

前端 潘老师 7个月前 (10-19) 135 ℃ (0) 扫码查看

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" 
}

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/front/9888.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】