Điều này phụ thuộc vào yêu cầu hiện tại.
JSON nhanh hơn so với serialization PHP trừ khi các điều kiện sau được đáp ứng:
- Lưu trữ mảng lồng sâu.
- Các đối tượng được lưu trữ cần được unserialized thành lớp thích hợp.
- Tương tác giữa các phiên bản PHP cũ không hỗ trợ
json_decode.
Dòng mã dưới đây có thể được sử dụng để lưu trữ mảng PHP sử dụng json_encode:
json_encode($array, JSON_UNESCAPED_UNICODE)
JSON không lưu trữ lớp gốc của đối tượng ở đâu, nhưng nó có thể được khôi phục dưới dạng các thể hiện lớp thuộc về stdClass.
Tại sao sử dụng json_encode thay vì serialize?
- JSON di động hơn nhiều so với serialize.
- Các tính năng của
__sleep()và__wakeup()không thể tận dụng được với JSON. - Mặc định, các thuộc tính public được serialize với JSON. (Nếu phiên bản PHP >= 5.4, có thể implement
JsonSerializableđể thay đổi hành vi).
Ví dụ
<?php
// Mảng được khai báo
$value = array(
"name"=>"name_me",
"email"=>"myemail.com"
);
// hàm json_encode() được sử dụng
$json = json_encode($value);
// Hiển thị đầu ra
echo($json);
?>
Kết quả
Điều này sẽ tạo ra kết quả sau:
{"name":"name_me","email":"myemail.com"}