- Trung Nguyen
05/05/2020
3 min read
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:
Đâ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:
Đâ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:
Đâ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:
Đâ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:
Đâ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:
Đâ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:
Đâ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:
Đây là kết quả:
Peter => 35
Ben => 37
Joe => 43
Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Lập Trình PHPBài trước chúng ta đã tìm hiểu được khái niệm JSON là gì rồi và cũng biết được cấu trúc chuỗi JSON như thế nào, vậy thì trong bài này chúng ta sẽ tìm hiểu xử lý JSON trong PHP như thế nào và các hàm xử lý JSON trong PHP từ căn bản đên nâng cao.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
1. Xử lý JSON trong PHP
PHP cũng là một ngôn ngữ lập trình nên nó cũng có cung cấp các thư viện xử lý JSON giúp lập trình viên giải quyết nó dễ dàng. Chúng ta có hai hàm đó là hàm json_decode và json_encode:
Hàm json_decode trong php
Hàm này mục đích chuyển một chuỗi JSON sang dạng mảng hoặc object, hàm này có cú
pháp như sau: json_decode[$json_string, $assoc]
. Trong đó:
$json_string
: là chuỗi JSON$assoc
có hai giá trị true / false. Nếutrue
thì kết quả nó trả về là dạng array, ngược lại nếufalse
thì kết quả trả về dạng object. Mặc định làfalse
.
Ví dụ: Cho chuỗ JSON như sau:
Bài viết này được đăng tại [free tuts .net]
$json_string = ' { "name" : "Nguyễn Văn Cường", "email" : "", "website" : "freetuts.net" } ';
Hãy dùng hàm json_decode
để chuyển về dạng mảng và object. Bài giải như sau:
$json_string = ' { "name" : "Nguyễn Văn Cường", "email" : "", "website" : "freetuts.net" } '; // Dạng Mảng var_dump[json_decode[$json_string, true]]; // Dạng Object var_dump[json_decode[$json_string]];
Kết quả:
Hàm json_encode trong PHP
Hàm này có chức năng ngược lại hàm json_decode
, nó sẽ chuyển một mảng trong PHP hoặc object trong PHP thành chuỗi JSON. Cú pháp như sau: json_encode[$array]
, trong đó $array
là mảng ban muốn
chuyển đổi. Kết quả chuỗi JSON sẽ tự động chuyển các ký tự có dấu, các ký tự đặc biệt sang dạng an toàn nên bạn nhìn vào nó hơi khác. Xem ví dụ dưới đây.
Ví dụ: Sử dụng hàm json_encode
để chuyển đổi mảng sau sang chuỗi JSON.
$array = array[ "name" => "Nguyễn Văn Cường", "email" => "", "website" => "freetuts.net" ];
Bài giải như sau:
$array = array[ "name" => "Nguyễn Văn Cường", "email" => "", "website" => "freetuts.net" ]; echo json_encode[$array];
Kết quả:
2. Các ví dụ JSON trong PHP
Ứng dụng hay nhất của JSON trong PHP đó là dùng để xuất ra chuỗi JSON dưới dạng API để các client có thể lấy và xử lý, thông dụng nhất là ajax. Mình đã có một serie về xử lý JSON trong ajax trong serie ajax toàn tập nên các bạn đến serie đó để xem cách sử dụng JSON kết hợp ajax nhé.
Bây giờ ta sẽ thảo luận về cách lưu trữ JSON trong MYSQL. Thông thường chúng ta sẽ kết hợp hàm
json_decode
trong php để chuyển đổi một mảng các thông tin nào đó sang chuỗi JSON và lưu vào trong CSDL. Sau đó khi lấy thông tin từ MYSQL để hiển thị ra website thì chúng ta dùng hàm json_encode
để chuyển đổi ngược trở lại. Như vậy khó khăn lớn nhất của những ban newbie chính là ý tưởng thiết kế CSDL như thế nào để lưu JSON? Thông thường những field nào mà cần tìm kiếm thông tin thì bạn nên tạo một field riêng, còn các thông tin mà không áp dụng trong tìm kiếm thì bạn
có thể đưa nó vào một chuỗi JSON rồi lưu vào một field, như vậy sẽ giải được số lượng field.
3. Lời kết
Như vậy trong PHP cung cấp cho chúng ta hai hàm quan trọng đó là json_decode và json_encode, việc sử dụng nó thì rất là đơn giản, quan trọng là ý tưởng vận dụng nó khi xây dựng ứng dụng như thế nào. Chúc các bạn học tốt nhé.