Làm việc với JSON trong PHP

Làm việc với JSON trong PHP.

Chuyển array thành json string

$user = [
    'id' => 1,
    'username' => 'admin',
];

echo json_encode($user);

Kết quả:

{"id":1,"username":"admin"}

Nếu muốn format đẹp hơn ta cho thêm tham số:

echo json_encode($user, JSON_PRETTY_PRINT);

Kết quả:

{
    "id": 1,
    "username": "admin"
}

Lưu ý: chỉ sử làm đẹp json khi test, không nên sử dụng trong môi trường chạy thực tế vì làm tăng kích thước json string với các kí tự end-line, space,...

Chuyển Object thành json string

Ta giả sử có class user như sau:

class User {
    public $id;
    public $username;
}

$user = new User()
$user->id = 1;
$user->username = 'admin';

Thì tương tự như trên ta cũng có thể gọi hàm json_encode để encode object thành json tring.

echo json_encode($user);

Kết quả:

{"id":1,"username":"admin"}

Chuyển json string thành array hoặc object

Để chuyển json string thành array hoặc object ta sử dụng hàm json_decode.
Ví dụ như sau:

$user_json = '{"id":1,"username":"admin"}';
$user_object = json_decode($user_json);
var_export($user_object);

$user_array = json_decode($user_json, TRUE);
var_export($user_array);

Kết quả:

// Object
stdClass::__set_state(array(
   'id' => 1,
   'username' => 'admin',
))

// Array
array (
  'id' => 1,
  'username' => 'admin',
)

Hàm json_decode mặc định sẽ chuyển json string thành object, nhưng nếu thêm tham số thứ 2 là TRUE. Thì hàm sẽ chuyển json string thành array.


Ref:
https://www.php.net/manual/en/function.json-encode.php
https://www.php.net/manual/en/function.json-decode.php

Bài đăng phổ biến từ blog này

Đệ quy trong MIPS