CodeGym /Các khóa học /Python SELF VI /Làm quen với JSON

Làm quen với JSON

Python SELF VI
Mức độ , Bài học
Có sẵn

1.1 Xuất hiện của JSON

JSON (JavaScript Object Notation) — là định dạng văn bản được sử dụng để trao đổi dữ liệu. Nó được phát triển vào đầu những năm 2000 bởi Douglas Crockford và trở nên phổ biến nhờ vào tính đơn giản và dễ sử dụng.

Ý tưởng chính của JSON là tạo ra một định dạng dễ đọc cho con người và đồng thời dễ dàng để parsing và tạo ra các chương trình. JSON ban đầu được phát triển dựa trên cú pháp của JavaScript, nhưng định dạng của nó đã trở nên phổ biến đến mức nó được sử dụng và hỗ trợ bởi nhiều ngôn ngữ lập trình khác. Bây giờ, JSON có thể được sử dụng độc lập với JavaScript, trở thành tiêu chuẩn trao đổi dữ liệu trong các hệ thống và ứng dụng khác nhau, bất kể ngôn ngữ lập trình được viết.

JSON thực sự là việc ghi lại trạng thái của một đối tượng bằng ngôn ngữ JavaScript. Gần như vậy. Đó là lý do tại sao JSON rất phổ biến đối với những ai viết API cho frontend. Ngoài ra, JSON được sử dụng rộng rãi để lưu trữ các tệp cấu hình và log.

Đặc điểm chính của JSON

Dễ đọc cho con người:

Định dạng JSON dễ đọc và hiểu đối với con người. Điều này làm cho nó thuận tiện trong việc sử dụng trong các tệp cấu hình và để trao đổi dữ liệu giữa client và server.

Không phụ thuộc ngôn ngữ:

Mặc dù JSON ban đầu dựa trên cú pháp của JavaScript, nhưng nó có thể được sử dụng với bất kỳ ngôn ngữ lập trình nào. Nhiều ngôn ngữ lập trình cung cấp các thư viện tích hợp để làm việc với JSON.

Dễ dàng parsing:

Parsing là quá trình phân tích cấu trúc dữ liệu, thông thường là văn bản hoặc mã, để trích xuất thông tin có ý nghĩa. Trong lập trình, parsing thường được áp dụng cho xử lý dữ liệu văn bản. JSON có thể dễ dàng parsing và tạo ra cả trên phía client và phía server. Hiện nay, trong mỗi ngôn ngữ lập trình đều có thư viện cho phép dễ dàng chuyển đổi một đối tượng sang JSON và ngược lại.

Tiêu chuẩn và dẫn đầu rõ ràng:

Cách đây 10 năm, JSON cạnh tranh với XML như một tiêu chuẩn API. Hiện nay, JSON đã chiến thắng và là người dẫn đầu rõ ràng. Trong API backend của bạn, bạn có thể chỉ hỗ trợ JSON, và điều đó sẽ đủ, ngay cả khi API của bạn được dùng để gọi bởi các server khác.

1.2 Cấu trúc JSON

JSON biểu diễn một tập hợp cặp "key-value" và cú pháp của nó bao gồm hai cấu trúc chính:

Đối tượng: Đối tượng biểu diễn các tập hợp không có thứ tự của các cặp "key-value". Các key là chuỗi, còn giá trị có thể là bất kỳ kiểu dữ liệu nào được JSON hỗ trợ.


{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Science"],
    "address": {
        "city": "New York",
        "zipCode": "10001"
    }
}

Mảng/Danh sách: Mảng biểu diễn tập hợp có thứ tự của giá trị (tương tự như danh sách trong Python). Giá trị có thể là bất kỳ kiểu dữ liệu nào được JSON hỗ trợ.


["Apple", "Banana", "Cherry", 100, 3.14, true]

Rất giống với đối tượng Python, đúng không?

Tất cả là vì JSON thực sự là tiêu chuẩn ghi dữ liệu trong JavaScript, và JavaScript trước đây đã được lấy cảm hứng từ Python. Vì vậy, bạn chắc chắn sẽ thích sử dụng JSON.

1.3 Kiểu dữ liệu trong JSON

JSON hỗ trợ các kiểu dữ liệu sau:

Chuỗi: được biểu diễn trong dấu ngoặc kép.


"name": "John"

Số: có thể là số nguyên hoặc số thập phân.


"age": 30

Đối tượng: tập hợp không có thứ tự của các cặp "key-value".


"address": {
    "city": "New York",
    "zipCode": "10001"
}

Mảng/Danh sách: tập hợp có thứ tự của các giá trị.


"courses": ["Math", "Science"]

Giá trị Boolean: true hoặc false.


"isStudent": false

Khác với Python, truefalse ở đây được viết bằng chữ thường.

null: biểu diễn giá trị trống.


"middleName": null

Ngày và thời gian: được truyền dưới dạng chuỗi.


{
    "datetime": "2023-05-15T14:30:00Z",
    "date": "2023-05-15",
    "time": "14:30:00"
}

Trước đây chúng đôi khi được truyền dưới dạng số trong định dạng UNIX timestamp, nhưng cách này đã lỗi thời.

2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Phân loại rác.
Phân loại rác.
2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Sửa chữa.
Sửa chữa.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION