Hàm json_encode trong PHP
Trần Thị Vân
- 1296
- 05/08/2025
Chức năng của Hàm json_encode trong PHP
Hàm json_encode trong PHP dùng để chuyển kiểu dữ liệu mảng hoặc đối tượng thành kiểu dữ liệu JSON, bạn nên dùng thêm JSON_UNESCAPED_UNICODE để định dạng kiểu UTF-8.
Cú pháp của Hàm json_encode trong PHP
$chuỗi_json = json_encode($_biến);
$_biến: Biến của mảng hoặc biến của đối tượng.
$chuỗi_json: Kết quả trả về chuỗi JSON.
$chuỗi_json = json_encode($_biến, định_dạng);
$_biến: Biến của mảng hoặc biến của đối tượng.
định_dạng: Cài đặt thêm định dạng như UTF-8 cho tiếng việt (JSON_UNESCAPED_UNICODE)
$chuỗi_json: Kết quả trả về chuỗi JSON.
Ví dụ Hàm json_encode trong PHP
<!DOCTYPE html>
<html>
<head>
<title>Chạy thử Ví dụ Hàm json_encode trong PHP</title>
</head>
<body>
<h1>Chạy thử Ví dụ Hàm json_encode trong PHP</h1>
<h2>Chuyển Mảng thành chuỗi có định dạng JSON</h2>
<?php
$manggoc = array("Lực"=>35,"Vân"=>29,"Quỳnh"=>1,"Dung"=>29,"Hạ"=>1);
//JSON_UNESCAPED_UNICODE là kiểu utf-8 (tiếng việt)
$chuoijson = json_encode($manggoc,JSON_UNESCAPED_UNICODE);
echo $chuoijson; // Kết quả: {"Lực":35,"Vân":29,"Quỳnh":1,"Dung":29,"Hạ":1}
?>
<h2>Chuyển Đối tượng thành chuỗi có định dạng JSON</h2>
<?php
$nhanVien = (object) [
'ten' => 'Bùi Tấn Lực',
'tuoi' => '35'
];
$jsonString = json_encode($nhanVien, JSON_UNESCAPED_UNICODE);
echo $jsonString; // Kết quả: {"ten":"Bùi Tấn Lực","tuoi":"35"}
?>
</body>
</html>
Kết quả:
/////Chuyển Mảng thành chuỗi có định dạng JSON
{"Lực":35,"Vân":29,"Quỳnh":1,"Dung":29,"Hạ":1}
/////Chuyển Đối tượng thành chuỗi có định dạng JSON
{"ten":"Bùi Tấn Lực","tuoi":"35"}
Những lưu ý khi sử dụng hàm json_encode() trong PHP
json_encode() hoạt động khá linh hoạt nhưng kết quả trả về còn phụ thuộc vào dữ liệu đầu vào và cách thiết lập tùy chọn. Khi sử dụng trong thực tế, nên chú ý đến việc hiển thị tiếng Việt, kiểm tra lỗi và cách PHP chuyển đổi từng kiểu dữ liệu sang JSON.
Xử lý tiếng Việt với JSON_UNESCAPED_UNICODE
Mặc định, json_encode() có thể chuyển các ký tự Unicode như tiếng Việt thành dạng mã Unicode escaped. Dữ liệu vẫn hợp lệ nhưng khi xem trực tiếp sẽ khó đọc hơn.
Có thể sử dụng JSON_UNESCAPED_UNICODE để giữ nguyên các ký tự Unicode trong chuỗi JSON. Cách này đặc biệt hữu ích khi dữ liệu được trả về cho JavaScript hoặc sử dụng trong API.
<?php
$data = [
"name" => "Nguyễn Văn An",
"message" => "Xin chào Web Mới"
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json;
?>
Khi đó, các ký tự tiếng Việt được giữ nguyên trong kết quả JSON thay vì bị chuyển thành chuỗi mã Unicode, giúp dữ liệu dễ kiểm tra và thuận tiện hơn khi làm việc với nội dung tiếng Việt.
Kiểm tra lỗi khi json_encode() không tạo được JSON
Không nên mặc định rằng mọi dữ liệu truyền vào json_encode() đều được chuyển đổi thành công. Với dữ liệu có ký tự không hợp lệ hoặc cấu trúc không phù hợp, hàm có thể trả về false.
Để xác định nguyên nhân, có thể sử dụng json_last_error() sau khi gọi hàm:
<?php
$data = [
"name" => "Nguyễn Văn An"
];
$json = json_encode($data);
if ($json === false) {
echo json_last_error_msg();
}
?>
Cách kiểm tra này giúp phát hiện lỗi sớm thay vì đưa một kết quả JSON không hợp lệ sang bước xử lý tiếp theo. Với ứng dụng cần độ tin cậy cao, việc kiểm tra kết quả mã hóa nên được thực hiện trước khi trả dữ liệu cho client.
Lưu ý khi chuyển mảng và đối tượng sang JSON
json_encode() có thể chuyển mảng và đối tượng PHP thành JSON, nhưng cách biểu diễn có thể khác nhau tùy cấu trúc dữ liệu. Mảng tuần tự thường được chuyển thành JSON array, trong khi mảng kết hợp thường trở thành JSON object.
<?php
$data = [
"id" => 10,
"title" => "Học PHP"
];
echo json_encode($data, JSON_UNESCAPED_UNICODE);
?>
Vì vậy, trước khi mã hóa dữ liệu, nên xác định rõ cấu trúc mà phía nhận cần sử dụng. Đặc biệt với dữ liệu gửi qua API, cấu trúc JSON ổn định sẽ giúp JavaScript hoặc ứng dụng khác đọc và xử lý dữ liệu chính xác hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm json_encode trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *