JSON trong PHP

JSON là gì?

JSON là viết tắt của JavaScript Object Notation (Ký hiệu đối tượng JavaScript) và là một cú pháp để lưu trữ và trao đổi dữ liệu.

Vì định dạng JSON là định dạng dựa trên văn bản, nó có thể dễ dàng được gửi đến và đi một máy chủ mà không bị tường lửa chặn và được sử dụng làm định dạng dữ liệu bởi bất kỳ ngôn ngữ lập trình nào.

PHP và JSON

PHP có một số hàm tính hợp sẵn để xử lý JSON. Đầu tiên, chúng ta sẽ xem xét hai hàm sau:

  • json_encode()
  • json_decode()

Hàm json_encode() trong PHP

Hàm json_encode() được sử dụng để mã hóa giá trị thành định dạng JSON.

Ví dụ này cho thấy cách mã hóa một mảng kết hợp thành một đối tượng JSON:

<?php
    $age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);

    echo json_encode($age);
?>

Đây là kết quả:


{"Peter":35,"Ben":37,"Joe":43}

Ví dụ này cho thấy cách mã hóa một mảng được lập chỉ mục thành một mảng JSON:

<?php
    $cars = array("Volvo", "BMW", "Toyota");

    echo json_encode($cars);
?>

Đây là kết quả:

["Volvo","BMW","Toyota"]

Hàm json_decode() trong PHP

Hàm json_decode() được sử dụng để giải mã một đối tượng JSON thành một đối tượng PHP hoặc một mảng kết hợp.

Ví dụ này giải mã dữ liệu JSON thành một đối tượng PHP:

<?php
    $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

    var_dump(json_decode($jsonobj));
?>

Đây là kết quả:


object(stdClass)#1 (3) { ["Peter"]=> int(35) ["Ben"]=> int(37) ["Joe"]=> int(43) }

Hàm json_decode() trả về một đối tượng theo mặc định. Hàm json_decode() có tham số thứ hai và khi được đặt thành true, các đối tượng JSON được giải mã thành các mảng kết hợp.

Ví dụ này giải mã dữ liệu JSON thành một mảng kết hợp PHP:

<?php
    $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

    var_dump(json_decode($jsonobj, true));
?>

Đây là kết quả:


array(3) { ["Peter"]=> int(35) ["Ben"]=> int(37) ["Joe"]=> int(43) }

Truy cập các giá trị được giải mã

Dưới đây là hai ví dụ về cách truy cập các giá trị được giải mã từ một đối tượng và từ một mảng kết hợp.

Ví dụ này cho thấy cách truy cập các giá trị từ một đối tượng PHP:

<?php
    $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

    $obj = json_decode($jsonobj);

    echo $obj->Peter . "<br />";
    echo $obj->Ben . "<br />";
    echo $obj->Joe . "<br />";
?>

Đây là kết quả:

35
37
43

Ví dụ này cho thấy cách truy cập các giá trị từ một mảng kết hợp PHP:

<?php
    $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

    $arr = json_decode($jsonobj, true);

    echo $arr["Peter"] . "<br />";
    echo $arr["Ben"] . "<br />";
    echo $arr["Joe"] . "<br />";
?>

Đây là kết quả:

35
37
43

Duyệt qua các giá trị

Bạn cũng có thể duyệt qua các giá trị bằng vòng lặp foreach.

Ví dụ này cho thấy cách duyệt qua các giá trị của đối tượng PHP:

<?php
    $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

    $obj = json_decode($jsonobj);

    foreach($obj as $key => $value) {
        echo $key . " => " . $value . "<br>";
    }
?>

Đây là kết quả:

Peter => 35
Ben => 37
Joe => 43

Ví dụ này cho thấy cách duyệt qua các giá trị của mảng kết hợp PHP:

<?php
    $jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';

    $arr = json_decode($jsonobj, true);

    foreach($arr as $key => $value) {
        echo $key . " => " . $value . "<br>";
    }
?>

Đây là kết quả:

Peter => 35
Ben => 37
Joe => 43


Bài viết liên quan:

Hướng dẫn lập trình PHP toàn tập sẽ giúp bạn từng bước tìm hiểu và nắm vững ngôn ngữ lập trình PHP.

Hướng dẫn cách truy xuất, lọc, sắp xếp dữ liệu MySQL trong PHP sử dụng MySQLi và PDO.

MySQL prepared statements trong PHP rất hữu ích để chống lại các cuộc tấn công SQL Injection.