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);
$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