[Laravel] 02 – Sử dụng JSON

JSON (Javascript Object Notation). Mục đích sử dụng chính của JSON là để truyền dữ liệu (cũng giống XML nhưng ở góc độ nhỏ hơn). JSON được đặt tên bởi vì Javascript là ngôn ngữ đầu tiên giới thiệu những lợi ích của định dạng này.

Nhiệm vụ của JSON là lưu trữ những mảng và đối tượng với giá trị của chuỗi.

Ngữ cảnh sử dụng của JSON là để trao đổi giữa front-end application và backend (máy chủ). Giả sử ứng dụng bạn load một số thành phần và hiển thị, sau đó hiển thị thêm một số thành phần, về mặt truyền thống bạn cần refresh lại toàn trang. Lúc này JSON sẽ hỗ trợ bạn truyền thông điệp từ backend tới front-end cho bạn thể hiện. Việc này đem lại rất nhiều lợi ích như tiện cho người dùng, băng thông và resource hệ thống xử lý. Điều này thực hiện đơn giản với Javascript với AJAX request.

Kể từ PHP 5.2 bạn có thể khai báo một chuỗi JSON đối tượng (serialize), trong PHP bạn có thể sử dụng hàm serialize() để gán một đối tượng thành kiểu dữ liệu chuỗi, và unserialize() để transform chúng từ dữ liệu chuỗi thành đối tượng ban đầu.

Cú pháp JSON

Ở ví dụ trên bạn có thể thấy giữa các dữ liệu không có khoảng cách ở giữa, điều này có thể gây khó khăn trong việc đọc nhưng điều này là bình thường ví chúng có thể tiết kiệm băng thông cho bạn khi truyền dữ liệu JSON (Lưu ý rằng mục đích của JSON là data transfer).

Một tin vui là dù khuyến nghị kiểu viết không có khoảng trắng để tiết kiệm băng thông nhưng JSON cũng không giới hạn bạn viết có khoảng trắng. Lời khuyên là bạn có thể dùng các tool, dạng plugin trên web browser để dễ dàng quan sát chuỗi JSON trả về từ backend.

JSON hỗ trợ kiểu dữ liệu số và chuỗi. Đầy đủ là: float, int, String, boolean, Array, Object, Null. Lưu ý với kiểu dữ liệu số thì không có dấu ngoặc kép (nhớ là ngoặc kép chứ ko phải là ngoặc đơn.

JSON và PHP

Ở phần trước ta đã tìm hiểu mục đích của JSON là một định dạng để truyền dữ liệu. dữ liệu này có thể là mảng và đối tượng.

Ta cũng có 2 kỹ thuật là serialize và unserialize để xuất bản và chuyển lại từ đối tượng sang JSON.

1. json_encode() – Chuyển PHP data => JSON format

2. json_decode() – Chuyển JSON format => PHP Data

Nếu bạn muốn sử dụng lời gọi dữ liệu $truth[‘panda’] thì cần set hàm json_decode về true như sau:

Trong phần tiếp theo tôi sẽ giới thiệu về hệ quản lý gói mới của PHP. Khi bạn tìm hiểu về Composer bạn sẽ thấy JSON rất quan trọng.

Kevin

[email protected]

Tham khảo từ Dayle Rees – Code Bright.