JSON với PHP
Chương này trình bày cách mã hóa và giải mã các đối tượng JSON bằng ngôn ngữ lập trình PHP. Hãy bắt đầu với việc chuẩn bị môi trường để bắt đầu lập trình với PHP cho JSON.
Môi trường
Kể từ PHP 5.2.0, phần mở rộng JSON được đóng gói và biên dịch sang PHP theo mặc định.
Các hàm JSON
Chức năng | Thư viện |
---|---|
json_encode | Trả về biểu diễn JSON của một giá trị. |
json_decode | Giải mã một chuỗi JSON. |
json_last_error | Trả về lỗi cuối cùng đã xảy ra. |
Mã hóa JSON trong PHP (json_encode)
Hàm json_encode () trong PHP được sử dụng để mã hóa JSON trong PHP. Hàm này trả về biểu diễn JSON của một giá trị khi thành công hoặc FALSE khi thất bại.
Cú pháp
string json_encode ( $value [, $options = 0 ] )
Thông số
value- Giá trị được mã hóa. Chức năng này chỉ hoạt động với dữ liệu được mã hóa UTF-8.
options - Giá trị tùy chọn này là mặt nạ bit bao gồm JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT.
Thí dụ
Ví dụ sau đây cho thấy cách chuyển một mảng thành JSON với PHP:
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
Trong khi thực thi, điều này sẽ tạo ra kết quả sau:
{"a":1,"b":2,"c":3,"d":4,"e":5}
Ví dụ sau cho thấy cách các đối tượng PHP có thể được chuyển đổi thành JSON:
<?php
class Emp {
public $name = "";
public $hobbies = "";
public $birthdate = "";
}
$e = new Emp();
$e->name = "sachin";
$e->hobbies = "sports";
$e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
$e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
echo json_encode($e);
?>
Trong khi thực thi, điều này sẽ tạo ra kết quả sau:
{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}
Giải mã JSON trong PHP (json_decode)
Hàm json_decode () trong PHP được sử dụng để giải mã JSON trong PHP. Hàm này trả về giá trị được giải mã từ json sang kiểu PHP thích hợp.
Cú pháp
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
Paramaters
json_string - Đây là một chuỗi được mã hóa phải là dữ liệu được mã hóa UTF-8.
assoc - Là tham số kiểu boolean, khi được đặt thành TRUE, các đối tượng trả về sẽ được chuyển thành mảng kết hợp.
depth - Đây là một tham số kiểu số nguyên chỉ định độ sâu đệ quy
options - Nó là một bitmask kiểu số nguyên của giải mã JSON, JSON_BIGINT_AS_STRING được hỗ trợ.
Thí dụ
Ví dụ sau cho thấy cách PHP có thể được sử dụng để giải mã các đối tượng JSON:
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
Trong khi thực thi, nó sẽ tạo ra kết quả sau:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}