HỌC JSON
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 01: JSON là gì? Cấu trúc chuỗi JSON

Thông thường khi làm các ứng dụng website thì bạn sẽ lưu dữ liệu vào một hệ quản trị cơ sở dữ liệu nào đó như là MYSQL, SQL SERVER, tuy nhiên nếu sử dụng những ứng dụng này thì bắt buộc hệ thống phải cài đặt nó. Bây giờ giả sử bạn đang muốn xây dựng một ứng dụng nhỏ, gọn và đơn giản thì sao? Nếu sử dụng các hệ quản trị CSLD trên thì không hay lắm vì phải cài đặt nhiều thứ nên gây phiền hà cho người dùng. Nếu như lúc trước thì người ta sẽ chọn sql lite hay XML để lưu trữ, nhưng hiện nay thì có một chuẩn CSDL khác nữa đó là JSON. Vậy JSON là gì thì chúng ta sẽ tìm hiểu qua các phần dưới đây.

test php

banquyen png
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. JSON là gì?

JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được, bạn có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ dàng. JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, theo tôi thì trong tương lai tới trong các ứng dụng sẽ sử dụng nó là đa số.

Ví dụ dưới đây mình định nghĩa một chuỗi JSON lưu trữ thông tin cá nhân của mình như sau, đây là ví dụ quan trọng nhất của phần  json là gì này.

{
    "username" : "thehalfheart",
    "email" : "thehalfehart@gmail.com",
    "website" : "freetuts.net",
    "title" : "Học lập trình với JSON"
}
Như vậy cú pháp của JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một record nào đó. Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một vài điều như sau:

  • Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}
  • Các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu bạn đặt nó trong dấu nháy đơn thì đây không phải là một chuỗi JSON đúng chuẩn. Nên trường hợp trong value của bạn có chứa dấu nháy kép thì hãy dùng dấu (\) để đặt trước nó nhé, ví dụ học \"json là gì\" tại website freetuts.net.
  • Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn cách
  • Các key của JSON bạn nên đặt chữ cái không dấu hoặc số, dấu _ và không có khoảng trắng., ký tự đầu tiên không nên đặt là số. Điều này rất giống với nguyên tắc đặt tên biến trong PHP.

Tới đây bạn đã trả lời được cho câu hỏi JSON là gì và tại sao lại sử dụng JSON rồi đấy.

Bài viết này được đăng tại [free tuts .net]

2. Cấu trúc chuỗi JSON

Bây giờ chúng ta sẽ làm một vài ví dụ liên quan đến JSON, vì chúng ta chưa sử dụng JSON kết hợp với các ngôn ngữ lập trình nên trong các ví dụ dưới đây chỉ ở mức độ là xây dựng chuỗi JSON đúng chuẩn. Thông qua các ví dụ này các bạn sẽ biết được cấu trúc một chuỗi JSON là gì.

Ví dụ 1: Có 3 sinh viên  gồm các thông tin sau: Nguyễn Văn Cường - 21 tuổi, Nguyễn Văn Kính - 22 tuổi, Nguyễn Văn Chính - 23 tuổi. Hãy xây dựng chuỗi JSON lưu trữ thông tin danh sách sinh viên đó.

Nếu xem ví dụ ở phần 1 JSON là gì thì bạn thấy không thể lưu được, vì nếu lưu thì ta sẽ lưu thế này:

{
    "sinhvien1_ten" : "Nguyễn Văn Cường",
    "sinhvien1_tuoi" : "21 Tuổi",
    "sinhvien2_ten" : "Nguyễn Văn Kính",
    "sinhvien2_tuoi" : "22 Tuổi",
    "sinhvien3_ten" : "Nguyễn Văn Chính",
    "sinhvien4_tuoi" : "22 Tuổi"
}
Nhìn vào không hay đúng không nào, vì thông thường mỗi đối tượng chúng ta sẽ gom lại một nơi lưu trữ để tiện cho việc tìm kiếm và phân chia, nhưng chuỗi này không lưu được như vậy. Bây giờ ta sẽ tìm hiểu một cách khác nhé.

[
    {
        "name" : "Nguyễn Văn Cường",
        "age" : "21 tuổi"
    },
    {
        "name" : "Nguyễn Văn Kính",
        "age" : "22 tuổi"
    },
    {
        "name" : "Nguyễn Văn Chính",
        "age" : "23 tuổi"
    }
]
Nhìn gọn hơn rồi đúng không nào, chúng ta sử dụng dấu ([]) để gom nhóm lại, và bên trong là danh sách các chuỗi JSON con được cách nhau bởi dấu phẩy (,). Lưu ý là các bạn phải tuân theo những quy tắc JSON mà phần 1 JSON là gì đã trình bày nhé.

Ví dụ 2: Giả sử chúng ta có bài toán như sau, ở một trường đại học lưu trữ điểm của sinh viên, mỗi sinh viên sẽ có một mã số sinh viên  sẽ đăng ký học các tín chỉ khác nhau, hãy tổ chức cấu trúc chuỗi JSON để lưu trữ danh sách sinh viên và danh sách các môn học của sinh viên đó.

Giả sử:

  • Nguyễn Văn Cường có ID là sv0001
  • Nguyễn Văn Kính có ID là sv0002

Bài này hơi khó rồi đấy nhỉ, các bạn tham khảo lời giải sau và rút ra bài học nhé. 

{
    "sv0001" : {
        "toan" : "Môn Toán",
        "ly" : "Môn Lý"
    },
    "sv0002" : {
        "toan" : "Môn Toán",
        "anh" : "Môn Anh"
    }
}
Các bạn thấy khác với ví dụ 1 mình không sử dụng dấu [] để bao ngoài cùng mà thay bằng cặp dấu {}, tại sao? Đơn giản là vì cặp [] dùng để bao các chuỗi JSON con, mà chuỗi JSON thì bắt buộc có cặp {} nên trong trường hợp trên không sử dụng được (các cặp con ở dạng key => {value})

3. Lời kết

Tuân theo quy luật cấu trúc chuỗi JSON ở 2 vi dụ trên bạn sẽ tạo được chuỗi JSON đúng chuẩn và không bị lỗi, kết hợp với phần 1 JSON là gì nữa là tuyệt vời ông mặt trời. Các bài tiếp theo chúng ta sẽ tìm hiểu các áp dụng JSON kết hợp với các ngôn ngữ như Javascript và PHP. Chúc các bạn buổi tối vui vẻ.

Cùng chuyên mục:

Phiên làm việc là gì trong SQL

Phiên làm việc là gì trong SQL

Trong bài viết này mình sẽ giải thích phiên làm việc là gì trong SQL…

Ràng buộc Check trong SQL

Ràng buộc Check trong SQL

Bài này bạn sẽ được học cách tạo ràng buộc giá trị trong SQL bằng…

Khóa ngoại Foreign Key trong SQL

Khóa ngoại Foreign Key trong SQL

Trong bài này bạn sẽ được học cách tạo khóa ngoại Foreign Key bằng câu…

Primary Key trong SQL

Primary Key trong SQL

Bài này bạn sẽ được giới thiệu cách tạo khóa chính (Primary Key) thể hiện…

Create và Drop Database trong SQL

Create và Drop Database trong SQL

Bài viết này sẽ hướng dẫn bạn cách sử dụng lệnh Create Database để tạo…

Subquery trong SQL - truy vấn con

Subquery trong SQL - truy vấn con

Trong bài này mình sẽ nói đến một cách sử dụng câu truy vấn SLECT…

Self Join trong SQL

Self Join trong SQL

Mỗi phép Join đều phải có hai bảng table1 và table2, tuy nhiên có trường…

Right Join trong SQL

Right Join trong SQL

Chào các bạn, hôm nay mình sẽ tiếp tục nói đến phép Join trong SQL.…

Left Join trong SQL

Left Join trong SQL

Ở bài trước chúng ta đã được tìm hiểu Inner Join và biết được tại…

Inner JOIN trong SQL

Inner JOIN trong SQL

Ở bài trước chúng ta đã học hiểu cách truy vấn nhiều bảng trong SQL…

Toán tử BETWEEN và NOT BETWEEN trong SQL

Toán tử BETWEEN và NOT BETWEEN trong SQL

Toán tử BETWEEN dùng để kiểm tra một giá trị có nằm trong một khoảng…

Tìm hiểu ALIAS  (AS) trong SQL

Tìm hiểu ALIAS (AS) trong SQL

Trong bài này mình sẽ nói về cách đặt lại tên cho column, table bằng…

Tích đề các trong SQL

Tích đề các trong SQL

Trong bài này mình sẽ hướng dẫn các bạn cách truy vấn dữ liệu trên…

Gộp dữ liệu với UNION và UNION ALL trong SQL

Gộp dữ liệu với UNION và UNION ALL trong SQL

Có một số trường hợp bắt buộc bạn phải chạy hai câu truy vấn nên…

Lọc dữ liệu trùng với DISTINCT trong SQL

Lọc dữ liệu trùng với DISTINCT trong SQL

Đôi khi có những câu truy vấn có kết quả bị trùng lặp thì lúc…

Toán tử AND và OR trong SQL

Toán tử AND và OR trong SQL

Trong bài này chúng ta học hai toán tử có thể nói là được sử…

Toán tử IN và NOT IN trong SQL

Toán tử IN và NOT IN trong SQL

Trong bài này chúng ta sẽ học hai lệnh mới dùng để kiểm tra một…

Toán tử LIKE và NOT LIKE trong SQL

Toán tử LIKE và NOT LIKE trong SQL

Trong bài này chúng ta sẽ tìm hiểu lệnh LIKE, lệnh này dùng để so…

Sắp xếp dữ liệu với ORDER BY trong SQL

Sắp xếp dữ liệu với ORDER BY trong SQL

Nếu bạn muốn sắp xếp dữ liệu trả về theo tăng dần hoặc giảm dần…

Lệnh Delete trong SQL

Lệnh Delete trong SQL

DELETE FROM posts WHERE post_id > 7000 AND post_content IS NOT NULL;

Top