Chuẩn dữ liệu JSON

Tác giả: Dương Nguyễn Phú Cường
Ngày đăng: 2 năm trước


JSON là gì?

  • JSON là viết tắt của JavaScript Object Notation
  • JSON là một chuẩn dữ liệu ngắn gọn, thường dùng để giao tiếp trên môi trường Client <-> Server.

JSON Syntax - Cú pháp khai báo một JSON Object

Cú pháp

Quy tắc khai báo JSON

Khi khai báo JSON Object cần có một số quy tắc sau:
  1. Bắt đầu và kết thúc bằng cặp dấu ngoặc móc {   }
  2. Tên thuộc tính (property) cần được đặt theo quy cách đặt tên biến:
    • Tên không được bắt đầu bằng số
    • Tên không chứa các ký tự đặc biệt
    • Thường đặt tên viết thường
    • Ví dụ đặt tên thuộc tính (property) hợp lệ: ho_ten, gioi_tinh, dia_chi, username, password, ...
    • Ví dụ đặt tên thuộc tính (property) không hợp lệ: 1ho_ten, Gi@i_T!nh, ...
  3. Tên thuộc tính (property) cần phải được bao bọc trong dấu ngoặc kép "   "
  4. Mỗi thuộc tính (property) phân cách với nhau bằng dấu ,
  5. Thuộc tính (property) cuối cùng thì không cần dấu ,

Ví dụ 1

Khai báo JSON object mô tả 1 đối tượng sinh viên có các thuộc tính sau:
  • Họ tên: Nguyễn Sinh Viên
  • Giới tính: Nam
  • Điểm trung bình: 8.5
Khai báo JSON:
{
   "ho_ten": "Nguyễn Sinh Viên",
   "gioi_tinh": "Nam",
   "diem_trung_binh": 8.5
}

Các kiểu dữ liệu có thể sử dụng trong JSON Values

In JSON, values là một trong các giá trị sau:
  • a string: một chuỗi ký tự
  • a number: một số (số nguyên hoặc sổ thực)
  • a boolean: một giá trị boolean (true / false)
  • null: một giá trị rỗng
  • an array: một mảng các object
  • an object: một object

Ví dụ JSON mô tả thông tin cá nhân

{
  "ho_ten": "Dương Nguyễn Phú Cường",
  "gioi_tinh": "Nam",
  "nam_lam_viec": 2012,
  "cac_lop_giang_day": [
    {
      "ma_lop": "web001",
      "ten_lop": "Lập trình Web HTML CSS JS",
      "si_so": 25,
      "da_to_chuc_thi": false
    },
    {
      "ma_lop": "web002",
      "ten_lop": "Lập trình Web PHP MySQL",
      "si_so": 20,
      "da_to_chuc_thi": true
    },
    {
      "ma_lop": "web003",
      "ten_lop": "Lập trình Web Laravel",
      "si_so": 35,
      "da_to_chuc_thi": true
    }
  ]
}