溫馨提示×

php中的json_encode()和json_decode()函數(shù)詳解

PHP
小云
282
2024-02-04 10:50:53
欄目: 編程語言

json_encode()函數(shù)是將一個PHP變量轉換為JSON格式的字符串。它接受一個參數(shù),即要轉換的PHP變量。如果成功,它將返回一個JSON格式的字符串;否則返回false。

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

  1. 將數(shù)組轉換為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. 可以通過第二個參數(shù)指定需要編碼的深度:
$data = array('name' => 'John', 'age' => 30);
$jsonString = json_encode($data, JSON_PRETTY_PRINT);
echo $jsonString;

輸出結果為:

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

json_decode()函數(shù)是將JSON格式的字符串轉換為PHP變量。它接受一個參數(shù),即要轉換的JSON字符串。如果成功,它將返回一個PHP變量;否則返回null。

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

  1. 將JSON字符串轉換為數(shù)組:
$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. 可以通過第二個參數(shù)指定返回的數(shù)據(jù)類型:
$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()函數(shù)默認返回的是stdClass對象,如果要返回數(shù)組,則需要將第二個參數(shù)設置為true。

另外,json_decode()函數(shù)還有一些可選的參數(shù),例如第三個參數(shù)可以用來指定最大解碼深度,第四個參數(shù)可以用來指定解碼時使用的選項等。詳細信息可以參考PHP官方文檔。

0