Giới thiệu về JSON
JSON là một định dạng trao đổi dữ liệu dựa trên văn bản có nguồn gốc từ JavaScript được sử dụng trong các dịch vụ web và các ứng dụng được kết nối khác. Các phần sau đây giới thiệu về cú pháp JSON, tổng quan về cách sử dụng JSON và mô tả về các cách tiếp cận phổ biến nhất để tạo và phân tích cú pháp JSON.
Nội dung chính bao gồm:
- Cú pháp JSON
- Công dụng của JSON
- Tạo và phân tích dữ liệu JSON
JSON là gì?
- JSON là viết tắt của JavaScript Object Notation.
- JSON là một định dạng trao đổi dữ liệu chuẩn mở.
- JSON nhẹ và tự mô tả.
- JSON có nguồn gốc từ JavaScript.
- JSON rất dễ đọc và viết.
- JSON là ngôn ngữ độc lập.
- JSON hỗ trợ các cấu trúc dữ liệu như mảng và đối tượng.
JSON được sử dụng để trao đổi dữ liệu
Khi trao đổi dữ liệu giữa trình duyệt và máy chủ, dữ liệu chỉ có thể là văn bản.
JSON là một chuỗi văn bản và chúng ta có thể chuyển đổi bất kỳ đối tượng nào thành JSON và gửi JSON tới máy chủ.
Chúng ta cũng có thể chuyển đổi bất kỳ JSON nào nhận được từ máy chủ thành các đối tượng.
Cú pháp JSON
JSON chỉ định nghĩa hai cấu trúc dữ liệu: các đối tượng và mảng. Một đối tượng là một tập hợp các cặp tên-giá trị và một mảng là một danh sách các giá trị. JSON định nghĩa bảy loại giá trị: string, number, object, array, true, false, và null.
Ví dụ sau đây cho thấy dữ liệu JSON cho một đối tượng mẫu có chứa các cặp giá trị tên. Giá trị cho tên "phoneNumbers"
là một mảng có các phần tử là hai đối tượng.
{
"firstName": "Code",
"lastName": "Lean",
"age": 18,
"streetAddress": "1A Yet Kieu",
"city": "Ha Noi",
"state": "HN",
"postalCode": "10000",
"phoneNumbers": [
{ "Mobile": "111-111-1111" },
{ "Home": "222-222-2222" }
]
}
JSON có cú pháp sau.
- Các đối tượng được đặt trong dấu ngoặc (
{}
), các cặp tên-giá trị của chúng được phân tách bằng dấu phẩy ( ,
) và tên và giá trị trong một cặp được phân tách bằng dấu hai chấm ( :
). Tên trong một đối tượng là các chuỗi, trong khi các giá trị có thể thuộc bất kỳ loại nào trong bảy loại giá trị, bao gồm một đối tượng khác hoặc một mảng.
- Mảng được đặt trong ngoặc (
[]
) và các giá trị của chúng được phân tách bằng dấu phẩy ( ,
). Mỗi giá trị trong một mảng có thể thuộc một loại khác nhau, bao gồm một mảng khác hoặc một đối tượng.
- Khi các đối tượng và mảng chứa các đối tượng hoặc mảng khác, dữ liệu có cấu trúc giống như cây.
Công dụng của JSON
JSON thường được sử dụng như một định dạng phổ biến để tuần tự hóa và giải tuần tự hóa dữ liệu trong các ứng dụng giao tiếp với nhau qua Internet. Các ứng dụng này được tạo bằng các ngôn ngữ lập trình khác nhau và chạy trong các môi trường rất khác nhau. JSON phù hợp với kịch bản này vì nó là một tiêu chuẩn mở, dễ đọc và viết và nó nhỏ gọn hơn các cách trình bày khác.
Các dịch vụ web RESTful sử dụng rộng rãi JSON làm định dạng cho dữ liệu bên trong các yêu cầu và phản hồi. Tiêu đề HTTP được sử dụng để chỉ ra rằng nội dung của yêu cầu hoặc phản hồi là dữ liệu JSON là
Content-Type: application/json
Các biểu diễn JSON thường nhỏ gọn hơn các biểu diễn XML vì JSON không có các thẻ đóng. Không giống như XML, JSON không có lược đồ được chấp nhận rộng rãi để xác định và xác thực cấu trúc của dữ liệu JSON.
Tạo và phân tích dữ liệu JSON
Để tạo và phân tích dữ liệu JSON, có hai mô hình lập trình, tương tự như mô hình được sử dụng cho các tài liệu XML.
- Mô hình đối tượng tạo một cây đại diện cho dữ liệu JSON trong bộ nhớ. Cây sau đó có thể được điều hướng, phân tích hoặc sửa đổi. Cách tiếp cận này là linh hoạt nhất và cho phép xử lý yêu cầu quyền truy cập vào nội dung đầy đủ của cây. Tuy nhiên, nó thường chậm hơn mô hình phát trực tuyến và cần nhiều bộ nhớ hơn. Mô hình đối tượng tạo đầu ra JSON bằng cách điều hướng toàn bộ cây cùng một lúc.
- Mô hình streaming sử dụng trình phân tích cú pháp dựa trên sự kiện để đọc từng phần tử dữ liệu JSON. Trình phân tích cú pháp tạo các sự kiện và dừng để xử lý khi một đối tượng hoặc một mảng bắt đầu hoặc kết thúc, khi nó tìm thấy một khóa hoặc khi nó tìm thấy một giá trị. Mỗi phần tử có thể được xử lý hoặc loại bỏ bởi mã ứng dụng và sau đó trình phân tích cú pháp tiến hành sự kiện tiếp theo. Cách tiếp cận này là đủ để xử lý cục bộ, trong đó việc xử lý một phần tử không yêu cầu thông tin từ phần còn lại của dữ liệu. Mô hình phát trực tuyến tạo đầu ra JSON cho một luồng nhất định bằng cách thực hiện cuộc gọi hàm với một phần tử tại một thời điểm.
Có nhiều trình tạo và trình phân tích cú pháp JSON có sẵn cho các ngôn ngữ và môi trường lập trình khác nhau. Xử lý JSON trong Nền tảng Java EE mô tả chức năng được cung cấp bởi API Java để xử lý JSON (JSR 374).
Đăng nhận xét