Chủ Nhật, 27 tháng 12, 2015

Json

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.

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.
1
2
3
4
5
6
{
    "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 keyvaluecủ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.

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:
1
2
3
4
5
6
7
8
{
    "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é.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
    {
        "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é. 
1
2
3
4
5
6
7
8
9
10
{
    "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ác phần còn lại ở đây: netx

0 nhận xét: