php中的json_encode()和json_decode()函数详解

avatar
作者
猴君
阅读量:6

json_encode()函数是将一个PHP变量转换为JSON格式的字符串。它接受一个参数,即要转换的PHP变量。如果成功,它将返回一个JSON格式的字符串;否则返回false。

下面是一些常见的用法示例:

  1. 将数组转换为JSON字符串:
$data = array('name' => 'John', 'age' => 30); $jsonString = json_encode($data); echo $jsonString; 

输出结果为:{“name”:“John”,“age”:30}

  1. 将对象转换为JSON字符串:
class Person {     public $name;     public $age; }  $person = new Person(); $person->name = 'John'; $person->age = 30;  $jsonString = json_encode($person); echo $jsonString; 

输出结果为:{“name”:“John”,“age”:30}

  1. 可以通过第二个参数指定需要编码的深度:
$data = array('name' => 'John', 'age' => 30); $jsonString = json_encode($data, JSON_PRETTY_PRINT); echo $jsonString; 

输出结果为:

{     "name": "John",     "age": 30 } 

json_decode()函数是将JSON格式的字符串转换为PHP变量。它接受一个参数,即要转换的JSON字符串。如果成功,它将返回一个PHP变量;否则返回null。

下面是一些常见的用法示例:

  1. 将JSON字符串转换为数组:
$jsonString = '{"name":"John","age":30}'; $data = json_decode($jsonString, true); print_r($data); 

输出结果为:Array([name] => John [age] => 30)

  1. 将JSON字符串转换为对象:
$jsonString = '{"name":"John","age":30}'; $data = json_decode($jsonString); echo $data->name; echo $data->age; 

输出结果为:John 30

  1. 可以通过第二个参数指定返回的数据类型:
$jsonString = '{"name":"John","age":30}'; $data = json_decode($jsonString, false, 512, JSON_BIGINT_AS_STRING); print_r($data); 

输出结果为:stdClass Object([name] => John [age] => 30)

需要注意的是,json_decode()函数默认返回的是stdClass对象,如果要返回数组,则需要将第二个参数设置为true。

另外,json_decode()函数还有一些可选的参数,例如第三个参数可以用来指定最大解码深度,第四个参数可以用来指定解码时使用的选项等。详细信息可以参考PHP官方文档。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!